Home | History | Annotate | Download | only in efiboot
History log of /src/sys/arch/i386/stand/efiboot/efidisk.c
RevisionDateAuthorComments
 1.11  06-Jan-2024  mlelstv In efiboot
- create bootinfo information only once.
- add fake biosgeom entries so that the kernel can distinguish between
hard drives (with geom) and CD-ROM (without).
 1.10  14-May-2023  riastradh x86/efiboot: Nix trailing whitespace.
 1.9  17-Dec-2019  manu branches: 1.9.26;
Do not use NAME=label syntax when label are empty

When booting sysinst from UEFI, it defaults to a GPT installation
where partition have no labels. Bootstrap used the NAME=label partition
anyway, with the result that both EFI and FFS root partition had
the same name "NAME=" and could not be distinguished. The first matching
partition for the name was used, and bootstrap looked for the kernel
in the EFI partition.

We fix that by not using NAME=label names for partition when label
is empty. In that case we revert to old syntax such as hd0b
 1.8  18-Aug-2019  manu Add GPT and RAIDframe support to bootloaders

Classic BIOS (/boot) and EFI bootloaders can now name devices
using the NAME=gpt_label syntax, or using raid partitions. Here
are examples:
boot NAME=root:/netbsd
boot raid0e:/netbsd
 1.7  17-Apr-2019  nonaka branches: 1.7.4;
efiboot: Don't panic when BLOCK_IO_PROTOCOL is not found.

It has been reported that there is a machine where BLOCK_IO_PROTOCOL
can not be found when network boot without disk.
 1.6  11-Apr-2018  nonaka branches: 1.6.2;
efiboot: Added network boot support.
 1.5  02-Apr-2018  nonaka efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
 1.4  27-Mar-2018  nonaka efiboot: Added serial console support.
 1.3  20-Mar-2018  nonaka efiboot: boot device is always efi_distlist first element.
 1.2  08-Mar-2018  nonaka efiboot: system can boot from CD/DVD-ROM media.
 1.1  24-Jan-2017  nonaka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20;
Initial commit of native amd64 EFI boot loader.
 1.1.20.5  16-Apr-2018  pgoyette Sync with HEAD, resolve some conflicts
 1.1.20.4  07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.1.20.3  30-Mar-2018  pgoyette Resolve conflicts between branch and HEAD
 1.1.20.2  22-Mar-2018  pgoyette Synch with HEAD, resolve conflicts
 1.1.20.1  15-Mar-2018  pgoyette Synch with HEAD
 1.1.18.2  03-Dec-2017  jdolecek update from HEAD
 1.1.18.1  24-Jan-2017  jdolecek file efidisk.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
 1.1.12.8  17-Dec-2019  martin Pull up following revision(s) (requested by manu in ticket #1474):

sys/arch/i386/stand/lib/biosdisk.c: revision 1.54
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.9

Do not use NAME=label syntax when label are empty

When booting sysinst from UEFI, it defaults to a GPT installation
where partition have no labels. Bootstrap used the NAME=label partition
anyway, with the result that both EFI and FFS root partition had
the same name "NAME=" and could not be distinguished. The first matching
partition for the name was used, and bootstrap looked for the kernel
in the EFI partition.

We fix that by not using NAME=label names for partition when label
is empty. In that case we revert to old syntax such as hd0b
 1.1.12.7  17-Sep-2019  martin Pull up following revision(s) (requested by manu in ticket #1373):

sys/arch/i386/stand/boot/boot2.c: revision 1.72 (patch)
sys/arch/i386/stand/lib/biosdisk.c: revision 1.50
sys/arch/i386/stand/lib/biosdisk.c: revision 1.51
sys/arch/i386/stand/efiboot/devopen.c: revision 1.6
sys/arch/i386/stand/efiboot/devopen.h: revision 1.4
sys/arch/i386/stand/efiboot/devopen.c: revision 1.7
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8
share/man/man8/man8.x86/boot.8: revision 1.16
share/man/man8/man8.x86/boot.8: revision 1.17
sys/arch/i386/stand/lib/Makefile: revision 1.46
sys/arch/i386/stand/boot/devopen.h: revision 1.5
sys/arch/i386/stand/boot/devopen.c: revision 1.9
sys/arch/i386/stand/efiboot/boot.c: revision 1.14 (patch)
sys/arch/i386/stand/efiboot/boot.c: revision 1.15
sys/arch/i386/stand/lib/biosdisk.h: revision 1.11
sys/arch/i386/stand/boot/boot2.c: revision 1.71

Add GPT and RAIDframe support to bootloaders

Classic BIOS (/boot) and EFI bootloaders can now name devices
using the NAME=gpt_label syntax, or using raid partitions. Here
are examples:

boot NAME=root:/netbsd
boot raid0e:/netbsd

Correct the memset(3)'s third argument in i386 biosdisk.c

The size of allocation is the size of the structure biosdisk, not the size
of a pointer.

Document new GPT and RAIDframe capacity of bootstrap code
While there, also document EFI setup and some bugs

Typo fixes, 'file system'; new sentence, new line; expand IA-32.

Bump date for previous.

Make sure devices names are copied including last byte
Fix from M. Levinson.
 1.1.12.6  17-Apr-2019  martin Pull up following revision(s) (requested by nonaka in ticket #1231):

sys/arch/i386/stand/efiboot/efidisk.c: revision 1.7

efiboot: Don't panic when BLOCK_IO_PROTOCOL is not found.

It has been reported that there is a machine where BLOCK_IO_PROTOCOL
can not be found when network boot without disk.
 1.1.12.5  11-Apr-2018  martin Pull up following revision(s) (requested by nonaka in ticket #739):

sys/arch/i386/stand/efiboot/efinet.h: revision 1.1
sys/arch/i386/stand/efiboot/efinet.c: revision 1.1
sys/arch/i386/stand/efiboot/conf.c: revision 1.2
sys/arch/i386/stand/efiboot/devopen.c: revision 1.5
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6
sys/arch/i386/stand/efiboot/devopen.h: revision 1.3
sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7
sys/arch/i386/stand/efiboot/boot.c: revision 1.10
sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12
sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1

efiboot: Added network boot support.
 1.1.12.4  04-Apr-2018  martin Pull up following revision(s) (requested by nonaka in ticket #692):

sys/arch/i386/stand/efiboot/devopen.c: revision 1.4
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.5
sys/arch/i386/stand/efiboot/devopen.h: revision 1.2
sys/arch/i386/stand/efiboot/efidisk.h: revision 1.3
sys/lib/libsa/bootcfg.h: revision 1.2
sys/arch/i386/stand/efiboot/boot.c: revision 1.9
sys/lib/libsa/bootcfg.c: revision 1.3
sys/arch/i386/stand/lib/bootmenu.c: revision 1.17
sys/arch/i386/stand/lib/biosdisk.c: revision 1.49
sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.5
sys/arch/i386/stand/lib/bootmenu.h: revision 1.6
sys/arch/i386/stand/lib/biosdisk.h: revision 1.10

efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
 1.1.12.3  02-Apr-2018  martin Pull up following revision(s) (requested by nonaka in ticket #685):

sys/arch/i386/stand/efiboot/efidisk.c: revision 1.4
sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.4
sys/arch/i386/stand/efiboot/eficons.c: revision 1.5
sys/arch/i386/stand/efiboot/efichar.c: revision 1.1
sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.4
sys/arch/i386/stand/efiboot/boot.c: revision 1.8
sys/arch/i386/stand/efiboot/efimemory.c: revision 1.5
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.6
sys/arch/i386/stand/efiboot/efidelay.c: revision 1.2
sys/arch/i386/stand/efiboot/efiboot.h: revision 1.7
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.11

efiboot: Added serial console support.
 1.1.12.2  21-Mar-2018  martin Pull up following revision(s) (requested by nonaka in ticket #648):
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.3
sys/arch/i386/stand/efiboot/devopen.c: revision 1.3
sys/arch/i386/stand/efiboot/boot.c: revision 1.7
sys/arch/i386/stand/lib/biosdisk.c: revision 1.48

efiboot: fix it can't boot from HDD.

efiboot: more pager.

efiboot: boot device is always efi_distlist first element.

efiboot: fix to find boot partition process.
NetBSD related partitions with no bootme flag set are also candidates
for boot partition.
 1.1.12.1  13-Mar-2018  martin Pull up following revision(s) (requested by nonaka in ticket #625):
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2
sys/arch/i386/stand/efiboot/devopen.c: revision 1.2
sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2
sys/arch/i386/stand/efiboot/boot.c: revision 1.6
sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2
sys/arch/i386/stand/efiboot/efidev.c: revision 1.1
sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16
sys/arch/i386/stand/lib/biosdisk.h: revision 1.9
sys/lib/libsa/cd9660.c: revision 1.31
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5
sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6
sys/arch/i386/stand/lib/biosdisk.c: revision 1.47
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10
sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4
efiboot: system can boot from CD/DVD-ROM media.

Add missed file in previous commit.
 1.1.8.2  24-Jan-2017  nonaka 1468398
 1.1.8.1  24-Jan-2017  nonaka file efidisk.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
 1.1.4.2  20-Mar-2017  pgoyette Sync with HEAD
 1.1.4.1  24-Jan-2017  pgoyette file efidisk.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
 1.1.2.2  05-Feb-2017  skrll Sync with HEAD
 1.1.2.1  24-Jan-2017  skrll file efidisk.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
 1.6.2.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.6.2.1  10-Jun-2019  christos Sync with HEAD
 1.7.4.2  17-Dec-2019  martin Pull up following revision(s) (requested by manu in ticket #568):

sys/arch/i386/stand/lib/biosdisk.c: revision 1.54
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.9

Do not use NAME=label syntax when label are empty

When booting sysinst from UEFI, it defaults to a GPT installation
where partition have no labels. Bootstrap used the NAME=label partition
anyway, with the result that both EFI and FFS root partition had
the same name "NAME=" and could not be distinguished. The first matching
partition for the name was used, and bootstrap looked for the kernel
in the EFI partition.

We fix that by not using NAME=label names for partition when label
is empty. In that case we revert to old syntax such as hd0b
 1.7.4.1  13-Sep-2019  martin Pull up following revision(s) (requested by manu in ticket #200):

sys/arch/i386/stand/boot/boot2.c: revision 1.72
sys/arch/i386/stand/lib/biosdisk.c: revision 1.50
sys/arch/i386/stand/lib/biosdisk.c: revision 1.51
sys/arch/i386/stand/efiboot/devopen.c: revision 1.6
sys/arch/i386/stand/efiboot/devopen.h: revision 1.4
sys/arch/i386/stand/efiboot/devopen.c: revision 1.7
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8
share/man/man8/man8.x86/boot.8: revision 1.16
share/man/man8/man8.x86/boot.8: revision 1.17
sys/arch/i386/stand/lib/Makefile: revision 1.46
sys/arch/i386/stand/boot/devopen.h: revision 1.5
sys/arch/i386/stand/boot/devopen.c: revision 1.9
sys/arch/i386/stand/efiboot/boot.c: revision 1.14
sys/arch/i386/stand/efiboot/boot.c: revision 1.15
sys/arch/i386/stand/lib/biosdisk.h: revision 1.11
sys/arch/i386/stand/boot/boot2.c: revision 1.71

Add GPT and RAIDframe support to bootloaders

Classic BIOS (/boot) and EFI bootloaders can now name devices
using the NAME=gpt_label syntax, or using raid partitions. Here
are examples:

boot NAME=root:/netbsd
boot raid0e:/netbsd

Correct the memset(3)'s third argument in i386 biosdisk.c

The size of allocation is the size of the structure biosdisk, not the size
of a pointer.

Document new GPT and RAIDframe capacity of bootstrap code
While there, also document EFI setup and some bugs

Typo fixes, 'file system'; new sentence, new line; expand IA-32.
Bump date for previous.

Make sure devices names are copied including last byte
Fix from M. Levinson.
 1.9.26.2  14-Jan-2024  martin Pull up following revision(s) (requested by mlelstv in ticket #548):

sys/arch/i386/stand/efiboot/efidisk.h: revision 1.4
sys/arch/i386/stand/lib/exec.c: revision 1.80
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.11
sys/arch/i386/stand/lib/biosdisk.c: revision 1.61

In efiboot
- create bootinfo information only once.
- add fake biosgeom entries so that the kernel can distinguish between
hard drives (with geom) and CD-ROM (without).
 1.9.26.1  03-Nov-2023  martin Pull up following revision(s) (requested by rin in ticket #452):

sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.7
sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.8
sys/arch/i386/stand/efiboot/boot.c: revision 1.23
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.10
sys/arch/i386/stand/efiboot/devopen.c: revision 1.14
sys/arch/i386/stand/efiboot/efimemory.c: revision 1.10

x86/efiboot: Nix trailing whitespace.

whitespace -> tab, blank line, no binary changes.

``int i'' is used only for SUPPORT_NFS || SUPPORT_TFTP.

RSS XML Feed