History log of /src/sys/arch/i386/stand/lib/exec.c |
Revision | | Date | Author | Comments |
1.81 |
| 11-Sep-2024 |
andvar | dosboot(8): remove XMS-specific code. The boot process has been broken for over a decade, and its relevance has diminished due to the availability of other boot options.
PR port-i386/58624
|
1.80 |
| 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.79 |
| 20-Apr-2023 |
manu | Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address
EFI bootstrap assumes it can copy the amd64 kernel to its ELF load address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can clash with previous UEFI memory allocation, as described here: http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html
This change adds a reloc keyword for controling where the EFI boostrap will copy the kernel image. Possible values are: default - the default and prior behavior, copy at 0x200000. none - do not copy and use the kernel image where it was loaded. address - specify an explicit address where to copy the kernel.
This comes with an amd64 kernel patch that makes it self-relocatable. It first discover where it was loaded in memory, and if this is different than the expected 0x200000, hhe the kernel relocates itself and start over at the right address.
|
1.78 |
| 21-Sep-2022 |
riastradh | branches: 1.78.4; i386/stand: Handle 9.99.100 by taking four, not two, digits.
We haven't used the revision part of __NetBSD_Version__ = MMmmrrpp00 in almos two decades so we're apparently reclaiming it as MMmmpppp00.
|
1.77 |
| 30-May-2021 |
mlelstv | Add "root" command to provide a BTINFO_ROOTDEVICE parameter.
|
1.76 |
| 04-Apr-2020 |
christos | branches: 1.76.8; 1.76.10; Infrastructure for putting kernel+modules in /netbsd/kernel and /netbsd/modules respectively instead of /netbsd and /stand/<arch>/<version>/modules. This is only supported for x86, and is turned off by default. To try it, add KERNEL_DIR=yes in your /mk.conf and install a system from that build.
|
1.75 |
| 07-Dec-2019 |
christos | loadfile sets errno, return the correct error, not EIO.
|
1.74 |
| 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.73 |
| 26-Jul-2019 |
nonaka | branches: 1.73.2; Pre-allocate memory for the kernel space at startup.
|
1.72 |
| 24-Jun-2019 |
pgoyette | Now that the ufs module has been split out from ffs and ext2fs, we need to update the boot-loader to push all modules required to support the booted filesystem. We treat the fsmod string as a slash-separated list of module names (relative to kern.module.path), rather than as a single module path name.
Note that ffsv1 and ffsv2 are still exempted from the boot-loader's auto-push, but the list of required filesystems is still noted in the source.
Also note that arch/sandpoint needs a similar change. I have not made this change because I am totally unable to test it.
Tested on my kernel with _no_ built-in file-systems and with the ffs bootloader settings of fsmod enabled.
|
1.71 |
| 24-Jun-2019 |
pgoyette | Remove double-include for reboot.h
|
1.70 |
| 20-Jun-2019 |
maxv | Add KASLR support in UEFI.
|
1.69 |
| 07-Oct-2017 |
maxv | branches: 1.69.4; Add a new option in libsa, to load dynamic binaries. A separate function is used, and it does not break in any way the generic static loader. Then, add a new "pkboot" command in the x86 bootloader, which boots a GENERIC_KASLR kernel via the prekern. (See thread on tech-kern@.)
|
1.68 |
| 24-Mar-2017 |
nonaka | branches: 1.68.6; efiboot: fix calculation of the kernel size when loading modules.
|
1.67 |
| 12-Mar-2017 |
nonaka | efiboot: Kernel modules are loaded in pre-allocated memory.
|
1.66 |
| 23-Feb-2017 |
nonaka | no need COUNT_KERNEL hack.
|
1.65 |
| 11-Feb-2017 |
nonaka | PR/51953: fix unable to boot on some AMD machine.
Delayed the timing to copy the kernel to actual address. copy routine from common/lib/libc/arch/x86_64/string/bcopy.S
|
1.64 |
| 11-Feb-2017 |
nonaka | efiboot: Copy bootinfo to safe arena.
|
1.63 |
| 24-Jan-2017 |
nonaka | Initial commit of native amd64 EFI boot loader.
|
1.62 |
| 04-Dec-2016 |
maxv | branches: 1.62.2; KNF and explain a few things
|
1.61 |
| 05-Jun-2016 |
maxv | branches: 1.61.2; Don't use a magic value. Define a limit, and enforce it.
|
1.60 |
| 05-Jun-2016 |
maxv | The bootinfo is refreshed each time the bootloader tries to execute a kernel, so there's no point in using this global variable. Because of this variable, only one "boot" command can be issued in the prompt, and you have to reboot the machine if you mistyped the kernel name.
|
1.59 |
| 06-Apr-2014 |
jakllsch | branches: 1.59.4; Misc WARNS=4 fixes.
|
1.58 |
| 10-Jan-2014 |
jakllsch | branches: 1.58.2; fix style and whitespace nits
|
1.57 |
| 05-Jan-2014 |
jakllsch | Make name argument to module_add_common const; use this to allow the libsa fsmod string to soon become const.
|
1.56 |
| 30-Dec-2013 |
jakllsch | Zero out on-stack 'marks' array before first use. This is needed so the MARK_DATA index is properly filled in.
|
1.55 |
| 27-Nov-2013 |
jakllsch | Use the size of what's at the bootinfo_userconf pointer, not the size of the pointer itself.
|
1.54 |
| 24-Nov-2013 |
jakllsch | The x86 kernel entry point stack arguments are always 32-bit, even on amd64.
|
1.53 |
| 24-Nov-2013 |
jakllsch | use <i386/multiboot.h> instead of <machine/multiboot.h> so this can be compiled for amd64
|
1.52 |
| 24-Nov-2013 |
jakllsch | cast from 32-bit integer to void * though uintptr_t to avoid warnings when compiling for x86_64.
|
1.51 |
| 30-Aug-2013 |
jmcneill | Add support for using a raw file-system image as memory disk root with the x86 bootloader.
|
1.50 |
| 21-May-2012 |
dsl | branches: 1.50.2; 1.50.4; Remove the code that tries to load the "ffs" kernel module during boot. This is in line with the core decision than even modular kernels should contain the ffs code. I've left in the code that tries to load "nfs" and "ext2fs", but it isn't clear that is necessary. Removes a warning message that (usually) flashes past to fast to read. AFAICT all the relevant kernels contain ffs (and nfs for that matter).
|
1.49 |
| 28-Nov-2011 |
tls | branches: 1.49.2; 1.49.4;
Add support for passing saved entropy (random seed file) to the kernel from the bootloader. This can fix the problem of poor quality keys for other kernel modules which call arc4random() early in kernel startup (NFS startup, in particular, causes this).
We continue to rely on the etc/rc.d/random_seed script to save entropy to the seed file at shutdown and erase the seed file at startup.
Boot loader support implemented only for i386 and amd64 ports for now but it should be easy for other ports to do the same or similar.
|
1.48 |
| 17-Jul-2011 |
joerg | branches: 1.48.2; Retire varargs.h support. Move machine/stdarg.h logic into MI sys/stdarg.h and expect compiler to provide proper builtins, defaulting to the GCC interface. lint still has a special fallback. Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and derive va_list as required by standards.
|
1.47 |
| 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.46 |
| 06-Feb-2011 |
jmcneill | add support for passing image files to the kernel with the 'splash' keyword:
vesa on;splash /netbsd.jpg;boot -z
|
1.45 |
| 30-Oct-2010 |
jnemeth | branches: 1.45.2; 1.45.4; Reduce licence with copyright Perry E. Metzger and Matthias Drochner to two clauses.
On Thu, 21 Oct 2010 22:42:00 -0700 jnemeth@XXX (John Nemeth) wrote: > The file src/sys/arch/i386/stand/lib/exec.c has a licence > section that starts off saying copyright by each of you. That is > then followed by a standard four claus UCB licence. Would it be > okay to reduce that to the two claus licence that is now standard > for NetBSD?
I have no particular objections.
-- Perry E. Metzger perry@XXX
jnemeth@XXX said: > Would it be okay to reduce that to the two claus licence
Yes of course, this is OK.
best regards Matthias
|
1.44 |
| 25-Aug-2010 |
christos | use LOAD_BACKWARDS instead of LOAD_NOTE for floppy book.
|
1.43 |
| 25-Jun-2010 |
tsutsui | Add wait_sec() which uses BIOS function call INT 1Ah/AH=00h (GET SYSTEMTIME) and use it for large delays (in seconds) instead of delay() that uses INT 15h/AH=86h (WAIT) in microsecond because the latter one can't provide precise delays on emulators. Fixes PR port-i386/43156 (NetBSD bootloader countdown runs at 1/20 speed in qemu 0.12).
No particular comments on the PR and port-i386@.
|
1.42 |
| 14-Sep-2009 |
jmcneill | branches: 1.42.2; 1.42.4; Don't commit the selected VBE mode until the loader is past the point of no return; need to stick in text mode as long as possible since libsa does not include a rasops library. While here, add the 'vesa' command to pxeboot to mirror biosboot behaviour.
|
1.41 |
| 13-Sep-2009 |
jmcneill | kmod improvements - unless otherwise specified, modules are now loaded from the same device as the kernel ('load miniroot' now implies 'load tftp:miniroot' if the boot command is 'boot tftp:netbsd') - the module name -> path expansion now works when a device prefix: is specified ('load tftp:miniroot' now works) - if the module name has been expanded to a path, print that path when loading the module rather than the symbolic name - only print an error in module_open if both the expanded path and the raw path fail to open
|
1.40 |
| 21-Mar-2009 |
ad | Fix 'boot -z' bogons.
|
1.39 |
| 16-Feb-2009 |
jmcneill | Bootloader modifications for generic framebuffer console support on i386 and amd64 where VESA VBE 2.0+ is available.
* Add helper library and stubs to invoke VBE bioscalls. * Bump HEAP_START as we were already dangerously close to our limits. * bootdataseg now allows access > 16MB so in the future we can scribble on the framebuffer. * Pass BTINFO_FRAMEBUFFER parameters to kernel when configured. * VBE modes are configured with the new 'vesa' command. Usage, when present: * vesa {enabled|disabled} Enable / disable linear framebuffer, default mode is 640x480x8. May be changed in the future to determine mode based on VBE/DDC where available. * vesa list List modes supported by the firmware that meet the following criteria: * linear framebuffer * packed pixel or direct colour mode * vesa {modenum|modestr} Enable specific VBE mode. The mode can be specified either as a VBE mode number (eg. 0x101) or as a string (eg. 800x600x16).
|
1.38 |
| 24-Jan-2009 |
rmind | branches: 1.38.2; Revert path of modules back to "/stand".
|
1.37 |
| 24-Jan-2009 |
rmind | Change path to kernel modules from "/stand" to "/kernel". Needs to go in before 5.0. Proposed on <tech-kern>.
|
1.36 |
| 14-Dec-2008 |
christos | ANSI and KNF from Anon Ymous
|
1.35 |
| 25-Nov-2008 |
ad | Make pxeboot understand boot.cfg.
|
1.34 |
| 19-Nov-2008 |
ad | For the x86 boot loader, autoload a kernel module corresponding to the root file system type.
|
1.33 |
| 11-Oct-2008 |
joerg | branches: 1.33.2; Add "multiboot" command to boot multiboot compliant kernels like Xen. Patch provided by Robert Swindell with fixes for the command line parsing and addition of passing module options from me. The kernel now always gets the full string for modules like for the command line, everything before the first space/tab is the path name of the module.
|
1.32 |
| 08-Oct-2008 |
joerg | Move functionality for preparing the kernel (including XMS support) into a new function common_load_kernel.
|
1.31 |
| 08-Oct-2008 |
joerg | Move initialisation of boot_argv after the full loading of the kernel, directly before loading modules.
|
1.30 |
| 08-Oct-2008 |
joerg | Setup module_base in module_init().
|
1.29 |
| 26-Sep-2008 |
christos | The structure of our elf kernel is:
elf header/program headers/text/data/note/ section headers/symbol table/string table
We need to read the section headers first to find the offset of the note and thus we requite backwards seek. The only reason we need to read the note is to find the version of the kernel, and this seems not to be used anywhere. We could potentially change the kernel ldscript to add the note information in the program headers, but dealing with ldscripts is painful and producing a more complex binary could break some dumb standalone loader. So the simple solution is to just disable the note loading for floppies which is what this patch does. If someone wants to fix it in a better way, be my guest.
|
1.28 |
| 25-May-2008 |
chris | branches: 1.28.4; Fix pxeboot's load tftp:miniroot.i386.kmod to work again.
We now wrapper the open call for a module with module_open. It first attempts to open the module_path munged path, if this fails it then tries to open the original path.
This allows tftp files to be located correctly.
|
1.27 |
| 20-May-2008 |
ad | Take $MACHINE into account when looking for modules.
|
1.26 |
| 20-May-2008 |
ad | PR kern/38694 module dependencies do not work as expected
If a given module name/path does not start with '/', assume it's a module name and choose a default path based on the kernel version.
|
1.25 |
| 04-May-2008 |
martin | branches: 1.25.2; Remove my personal license, the TNF one is good enough for me.
|
1.24 |
| 03-May-2008 |
ad | Handle compressed modules.
|
1.23 |
| 02-May-2008 |
ad | - Give x86 BIOS boot the ability to load new style modules and pass them into the kernel. Based on a patch by jmcneill@, with many fixes and improvements by me.
- Put MEMORY_DISK_DYNAMIC and MODULAR into the GENERIC kernels, so that you can load miniroot.kmod from the boot blocks and boot into the installer!
|
1.22 |
| 11-Dec-2005 |
christos | branches: 1.22.74; 1.22.76; 1.22.78; merge ktrace-lwp.
|
1.21 |
| 21-Jun-2005 |
junyoung | ANSI, KNF, trailing spaces, and etc.
|
1.20 |
| 10-Nov-2003 |
wiz | Spell address with two d's. Inspired by similar changes in OpenBSD, originating from Jonathon Gray and forwarded by jmc@openbsd.
|
1.19 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.18 |
| 27-Feb-2003 |
hannken | branches: 1.18.2; Change "i386_trunc_page" to "x86_trunc_page".
|
1.17 |
| 01-Jun-2001 |
jdolecek | branches: 1.17.2; g/c COMPAT_OLDBOOT from bootblocks, sprinkle some const bump bootblock version to 2.10
|
1.16 |
| 19-May-2001 |
jdolecek | Add some IBM PS/2 support bits: * recognize PS/2 L40 via biosmca() and biosmca_ps2model in gatea20.c, instead of being a compile time option * if the system is PS/2 with MCA bus, map DTYPE_ESDI disks to ed(4) for COMPAT_OLDBOOT
The new code is conditional on SUPPORT_PS2 define, which is on by default for biosboot-based bootblocks.
|
1.15 |
| 22-Feb-2000 |
dbj | branches: 1.15.8; use bios' idea of the basemem size and create the kernel stack at the top of it instead of hard coding 0x90000
|
1.14 |
| 07-Sep-1999 |
ross | branches: 1.14.2; spelling
|
1.13 |
| 15-May-1999 |
drochner | don't printf(NULL), not even in the DEBUG case (It doesn't hurt the bootloader, but the junk output hangs my serial console.)
|
1.12 |
| 28-Apr-1999 |
christos | use new loadfile
|
1.11 |
| 14-Apr-1999 |
drochner | add prototype
|
1.10 |
| 08-Apr-1999 |
drochner | Call bi_getbiosgeom() after loadfile() returned successfully. This avoids a memory leak if loadfile() gets an error.
|
1.9 |
| 08-Mar-1999 |
fvdl | branches: 1.9.2; * query BIOS geometry information, possibly using the int 13 extensions. * pass them on to the kernel * print a message if the 2nd stage bootloader returns (i.e. fails) instead of just hanging.
|
1.8 |
| 29-Jan-1999 |
christos | Merge XMS changes from exec_fromdos.c
|
1.7 |
| 28-Jan-1999 |
christos | Add support for selectively loading sections, and make this compile in userland with -DINSTALLBOOT
|
1.6 |
| 28-Jan-1999 |
christos | Remove a.out loading code and use loadfile.c for everything. Populate the btinfo_symtab structure.
|
1.5 |
| 28-Sep-1997 |
drochner | Pass new boot information per default.
|
1.4 |
| 17-Sep-1997 |
drochner | Use the "bootinfo" defined structures to collect information about boot device/file and console setting, remove the old, limited, "xbootinfo". Fix a printf() format warning in debug code.
|
1.3 |
| 22-Mar-1997 |
thorpej | branches: 1.3.4; Mimmick the old boot block's hdN -> Xd0 (where X is specified by the disklabel type) unit conversion behavior.
|
1.2 |
| 22-Mar-1997 |
thorpej | Purely cosmetic whitespace and indentation changes (mmm, indent(1))
|
1.1 |
| 14-Mar-1997 |
perry | branches: 1.1.1; Initial revision
|
1.1.1.1 |
| 14-Mar-1997 |
perry | Initial import of new boot code, created by Matthias Drochner with a little hacking by me. This isn't strictly identical to his 920312 release -- I've hacked it a bit -- but since we are taking over change control it doesn't matter much.
|
1.3.4.2 |
| 14-Oct-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.3.4.1 |
| 22-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.9.2.1 |
| 09-Apr-1999 |
drochner | branches: 1.9.2.1.2; pull up rev. 1.10 - avoid memory leak if loadfile() fails
|
1.9.2.1.2.1 |
| 21-Jun-1999 |
thorpej | Sync w/ -current.
|
1.14.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
|
1.15.8.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.17.2.2 |
| 01-Jun-2001 |
jdolecek | g/c COMPAT_OLDBOOT from bootblocks, sprinkle some const bump bootblock version to 2.10
|
1.17.2.1 |
| 01-Jun-2001 |
jdolecek | file exec.c was added on branch sommerfeld_i386mp_1 on 2001-06-01 23:26:32 +0000
|
1.18.2.4 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.18.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.18.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.18.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.22.78.5 |
| 09-Oct-2010 |
yamt | sync with head
|
1.22.78.4 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.22.78.3 |
| 16-Sep-2009 |
yamt | sync with head
|
1.22.78.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.22.78.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.22.76.2 |
| 04-Jun-2008 |
yamt | sync with head
|
1.22.76.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.22.74.3 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.22.74.2 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.22.74.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.25.2.2 |
| 10-Oct-2008 |
skrll | Sync with HEAD.
|
1.25.2.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.28.4.2 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.28.4.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
1.33.2.3 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.33.2.2 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
1.33.2.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.38.2.5 |
| 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.38.2.4 |
| 28-Mar-2011 |
jym | Cure sync hiccups. Code with compile errors is not really useful, heh.
|
1.38.2.3 |
| 28-Mar-2011 |
jym | Sync with HEAD. TODO before merge: - shortcut for suspend code in sysmon, when powerd(8) is not running. Borrow ``xs_watch'' thread context? - bug hunting in xbd + xennet resume. Rings are currently thrashed upon resume, so current implementation force flush them on suspend. It's not really needed.
|
1.38.2.2 |
| 01-Nov-2009 |
jym | Sync with HEAD.
|
1.38.2.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.42.4.3 |
| 31-May-2011 |
rmind | sync with head
|
1.42.4.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.42.4.1 |
| 03-Jul-2010 |
rmind | sync with head
|
1.42.2.3 |
| 06-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.42.2.2 |
| 22-Oct-2010 |
uebayasi | Sync with HEAD (-D20101022).
|
1.42.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.45.4.1 |
| 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.45.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.48.2.3 |
| 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.48.2.2 |
| 23-May-2012 |
yamt | sync with head.
|
1.48.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.49.4.1 |
| 03-Jun-2012 |
jdc | Pull up revisions: src/sys/arch/i386/stand/lib/exec.c revision 1.50 src/sys/arch/sandpoint/stand/altboot/main.c revision 1.21 via patch src/sys/lib/libsa/ext2fs.c revision 1.13 src/sys/lib/libsa/ffsv1.c revision 1.6 src/sys/lib/libsa/ffsv2.c revision 1.6 src/sys/lib/libsa/globals.c revision 1.9 src/sys/lib/libsa/lfsv1.c revision 1.5 src/sys/lib/libsa/lfsv2.c revision 1.5 src/sys/lib/libsa/stand.h revision 1.76 src/sys/lib/libsa/ufs.c revision 1.58 (requested by dsl in ticket #279).
Remove the code that tries to load the "ffs" kernel module during boot. This is in line with the core decision than even modular kernels should contain the ffs code. I've left in the code that tries to load "nfs" and "ext2fs", but it isn't clear that is necessary. Removes a warning message that (usually) flashes past to fast to read. AFAICT all the relevant kernels contain ffs (and nfs for that matter).
|
1.49.2.1 |
| 02-Jun-2012 |
mrg | sync to latest -current.
|
1.50.4.1 |
| 18-May-2014 |
rmind | sync with head
|
1.50.2.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.50.2.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.58.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.59.4.4 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.59.4.3 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.59.4.2 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.59.4.1 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.61.2.3 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.61.2.2 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.61.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.62.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.68.6.2 |
| 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.68.6.1 |
| 01-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1309):
sys/arch/i386/stand/lib/exec.c: revision 1.73 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.10 sys/arch/i386/stand/lib/libi386.h: revision 1.44 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.6 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.7 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.12 sys/arch/i386/stand/efiboot/boot.c: revision 1.13 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.9 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.15 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.2
Added tftp support to x86 efiboot.
Pre-allocate memory for the kernel space at startup.
Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
Sync the output of memmap command to the output of stand/efiboot mem command.
Added missing efi_memory_probe() call.
|
1.69.4.2 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.69.4.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.73.2.2 |
| 13-May-2023 |
martin | Pull up following revision(s) (requested by manu in ticket #1632):
share/man/man8/man8.x86/boot.8: revision 1.27 sys/arch/i386/stand/efiboot/version: revision 1.3 share/man/man8/man8.x86/boot.8: revision 1.28 (via patch) share/man/man8/man8.x86/boot.8: revision 1.29 (via patch) sys/arch/i386/stand/lib/exec.c: revision 1.79 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.13 sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.6 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.6 sys/arch/i386/stand/efiboot/boot.c: revision 1.22 sys/arch/amd64/amd64/locore.S: revision 1.219 sys/arch/i386/stand/efiboot/bootia32/startprog32.S: revision 1.3 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.12 sys/arch/amd64/conf/files.amd64: revision 1.121 sys/arch/amd64/conf/std.amd64: revision 1.13 share/man/man8/man8.x86/pxeboot.8: revision 1.6 sys/arch/i386/stand/efiboot/bootx64/startprog64.S: revision 1.4 sys/arch/amd64/amd64/locore.S: revision 1.220 share/man/man8/man8.x86/dosboot.8: revision 1.4 share/man/man4/options.4: revision 1.524
Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address
EFI bootstrap assumes it can copy the amd64 kernel to its ELF load address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can clash with previous UEFI memory allocation, as described here: http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html
This change adds a reloc keyword for controling where the EFI boostrap will copy the kernel image. Possible values are: default - the default and prior behavior, copy at 0x200000. none - do not copy and use the kernel image where it was loaded. address - specify an explicit address where to copy the kernel.
This comes with an amd64 kernel patch that makes it self-relocatable. It first discover where it was loaded in memory, and if this is different than the expected 0x200000, hhe the kernel relocates itself and start over at the right address.
Merge x86 boot options in x86/boot(8) and add undocumented UEFI options
We were supposed to keep the option list in x86/boot(8), x86/dosoot(8) and x86/pxeboot(8) in sync, but it did not happen, hence it may work better with all the options in x86/boot(8). Also add the undocumented UEFI boot options.
Add a SELFRELOC kernel option for the sake of documentation clarity. Instead of telling that x86/boot(8) reloc command needs a kernel able to self relocate, we can tell it needs a kernel built with the SELFRELOC option. This keeps the reader from wondering what could make a kernel able to self relocate.
Remove XXX todo marker left by mistake
Raise the version for new feature (here reloc command) Suggested by Masanobu SAITOH
|
1.73.2.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.76.10.1 |
| 31-May-2021 |
cjep | sync with head
|
1.76.8.1 |
| 17-Jun-2021 |
thorpej | Sync w/ HEAD.
|
1.78.4.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.78.4.1 |
| 13-May-2023 |
martin | Pull up following revision(s) (requested by manu in ticket #159):
share/man/man8/man8.x86/boot.8: revision 1.27 sys/arch/i386/stand/efiboot/version: revision 1.3 share/man/man8/man8.x86/boot.8: revision 1.28 share/man/man8/man8.x86/boot.8: revision 1.29 sys/arch/i386/stand/lib/exec.c: revision 1.79 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.13 sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.6 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.6 sys/arch/i386/stand/efiboot/boot.c: revision 1.22 sys/arch/amd64/amd64/locore.S: revision 1.219 sys/arch/i386/stand/efiboot/bootia32/startprog32.S: revision 1.3 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.12 sys/arch/amd64/conf/files.amd64: revision 1.121 sys/arch/amd64/conf/std.amd64: revision 1.13 share/man/man8/man8.x86/pxeboot.8: revision 1.6 sys/arch/i386/stand/efiboot/bootx64/startprog64.S: revision 1.4 sys/arch/amd64/amd64/locore.S: revision 1.220 share/man/man8/man8.x86/dosboot.8: revision 1.4 share/man/man4/options.4: revision 1.524
Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address
EFI bootstrap assumes it can copy the amd64 kernel to its ELF load address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can clash with previous UEFI memory allocation, as described here: http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html
This change adds a reloc keyword for controling where the EFI boostrap will copy the kernel image. Possible values are: default - the default and prior behavior, copy at 0x200000. none - do not copy and use the kernel image where it was loaded. address - specify an explicit address where to copy the kernel.
This comes with an amd64 kernel patch that makes it self-relocatable. It first discover where it was loaded in memory, and if this is different than the expected 0x200000, hhe the kernel relocates itself and start over at the right address.
Merge x86 boot options in x86/boot(8) and add undocumented UEFI options
We were supposed to keep the option list in x86/boot(8), x86/dosoot(8) and x86/pxeboot(8) in sync, but it did not happen, hence it may work better with all the options in x86/boot(8). Also add the undocumented UEFI boot options.
Add a SELFRELOC kernel option for the sake of documentation clarity. Instead of telling that x86/boot(8) reloc command needs a kernel able to self relocate, we can tell it needs a kernel built with the SELFRELOC option. This keeps the reader from wondering what could make a kernel able to self relocate.
Remove XXX todo marker left by mistake
Raise the version for new feature (here reloc command) Suggested by Masanobu SAITOH
|