Home | History | Annotate | Download | only in lib
History log of /src/sys/arch/i386/stand/lib/bootmenu.c
RevisionDateAuthorComments
 1.21  06-May-2025  pgoyette Allow the dev= command when processing /boot.cfg file. This
addresses kern/59207
 1.20  27-Nov-2024  martin Do not display the boot menu at all if (1) there is no choice and
(2) the timeout value is set to 0.
 1.19  09-Nov-2024  mlelstv Add 'fs' option for boot.cfg.
 1.18  08-Jun-2022  wiz branches: 1.18.10;
Remove now unused bootdefault() function.

Part of PR 56862.
 1.17  02-Apr-2018  nonaka efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
 1.16  11-Jun-2016  dholland branches: 1.16.10; 1.16.16;
gets_s -> kgets.

The exact name isn't that important; but it is important not to use
"gets_s" and thereby allow anyone to falsely get the impression we're
implementing Annex K. We aren't.

ok core.
 1.15  05-Jun-2016  maxv Use gets_s instead of gets. The x86 bootloader prompt is easy to
overflow.
 1.14  10-Aug-2014  isaki branches: 1.14.4;
Unify all arch/*/stand's atoi() to MI libsa.
lib/libsa/atoi.c was separated from lib/libsa/bootcfg.c.
PR/49084
 1.13  28-Jun-2014  rtr patch posted to tech-kern@ 2014/06/25 for review with minor changes
resulting from feedback.

move multiple copies of code for parsing boot.cfg file from sparc, i386
and zaurus into libsa/bootcfg.{h,c}. largely retained i386 parsing logic
in addition to keeping sparc dispatch function while remaining consistent
with boot.cfg(5).

previous sparc64 file format has been obsoleted but only used by boot
CDs distrib/sparc64/bootfs/boot.cfg has been updated to compensate.

exported names have been prefixed with either BOOTCFG_ or bootcfg_ as per
feedback from christos@

tested on amd64 & sparc64 but not zaurus.
 1.12  06-Apr-2014  jakllsch Use __dead.
 1.11  28-Jul-2013  he branches: 1.11.2;
Two changes for the i386 boot loader related to the boot menu which
can be defined in boot.cfg:

* Add a "menu" command which re-displays the menu and initiates
the timed countdown
* Use any default command defined in boot.cfg as default args
if the user runs "boot" with no arguments

This is useful in circumstances where you e.g. need to interrupt
the normal boot process to switch to serial console, and where
simply "boot netbsd" is no longer sufficient (e.g. as with install
media which needs the miniroot kernel module loaded).
 1.10  18-Aug-2011  christos branches: 1.10.2; 1.10.8; 1.10.12; 1.10.16;
PR/43563: Wolfgang Solfrank: boot.cfg doesn't support comments
Fix makes it support # comments and treat spaces and tabs the same way.
 1.9  26-May-2011  uebayasi Support userconf(4) command in boot(8)/boot.cfg(5) on i386/amd64.

From jmmv@, no objections seen in the proposed thread:

http://mail-index.netbsd.org/tech-kern/2009/01/22/msg004081.html
 1.8  14-Sep-2009  jmcneill branches: 1.8.4; 1.8.6;
Don't treat timeouts or the return key as an invalid choice; spotted by
Andreas Gustafsson.
 1.7  13-Sep-2009  jmcneill If the menuformat is not letter, do not allow letter keys to be aliases
for number keys. snj@ often overshoots the spacebar in a panic and
accidentally hits 'b' instead, which makes the loader boot item '2'.
Can't fix snj@, so fix the boot loader instead.
 1.6  10-Apr-2009  perry branches: 1.6.2;
Check the size of the offered boot.cfg file. Bail out if it is larger
than 32k.

A bootconf file is normally only a few hundred bytes long. If it is
much bigger than expected, we can't load it into an 8086 real mode
segment anyway.

Much more to the point, in the pxeboot case, someone may have
configured their dhcpd to return the filename for the kernel, not
realizing that the filename is now for boot.cfg which didn't used to
be the case. If we try to load the kernel here, thinking it is
boot.cfg by accident, the boot loader will die ignominiously and
without much of an error message, so we don't want to do that.

This needs to be pulled up to 5.0 if 5.0 has all this machinery
-- I'm not sure whether it does.
 1.5  18-Mar-2009  cegger bzero -> memset
 1.4  14-Dec-2008  christos branches: 1.4.2; 1.4.4; 1.4.6;
more KNF and ANSI from Anon-ymous
 1.3  14-Dec-2008  christos ANSI and KNF from Anon Ymous
 1.2  13-Dec-2008  christos add a boot.cfg option to clear the screen; default off. From Anon Ymous
 1.1  25-Nov-2008  ad branches: 1.1.4;
Make pxeboot understand boot.cfg.
 1.1.4.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.1.4.1  25-Nov-2008  haad file bootmenu.c was added on branch haad-dm on 2008-12-13 01:13:15 +0000
 1.4.6.3  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.4.6.2  01-Nov-2009  jym Sync with HEAD.
 1.4.6.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.4.4.3  28-Apr-2009  skrll Sync with HEAD.
 1.4.4.2  19-Jan-2009  skrll Sync with HEAD.
 1.4.4.1  14-Dec-2008  skrll file bootmenu.c was added on branch nick-hppapmap on 2009-01-19 13:16:21 +0000
 1.4.2.2  17-Jan-2009  mjf Sync with HEAD.
 1.4.2.1  14-Dec-2008  mjf file bootmenu.c was added on branch mjf-devfs2 on 2009-01-17 13:28:05 +0000
 1.6.2.3  16-Sep-2009  yamt sync with head
 1.6.2.2  04-May-2009  yamt sync with head.
 1.6.2.1  10-Apr-2009  yamt file bootmenu.c was added on branch yamt-nfs-mp on 2009-05-04 08:11:19 +0000
 1.8.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.8.4.1  31-May-2011  rmind sync with head
 1.10.16.2  18-May-2014  rmind sync with head
 1.10.16.1  28-Aug-2013  rmind sync with head
 1.10.12.2  03-Dec-2017  jdolecek update from HEAD
 1.10.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.8.1  10-Aug-2013  riz Pull up following revision(s) (requested by he in ticket #925):
sys/arch/i386/stand/lib/bootmenu.c: revision 1.11
sys/arch/i386/stand/lib/bootmenu.h: revision 1.3
sys/arch/i386/stand/boot/boot2.c: revision 1.59
Two changes for the i386 boot loader related to the boot menu which
can be defined in boot.cfg:
* Add a "menu" command which re-displays the menu and initiates
the timed countdown
* Use any default command defined in boot.cfg as default args
if the user runs "boot" with no arguments
This is useful in circumstances where you e.g. need to interrupt
the normal boot process to switch to serial console, and where
simply "boot netbsd" is no longer sufficient (e.g. as with install
media which needs the miniroot kernel module loaded).
 1.10.2.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.11.2.1  10-Aug-2014  tls Rebase.
 1.14.4.1  09-Jul-2016  skrll Sync with HEAD
 1.16.16.1  07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.16.10.1  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.18.10.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed