#
3e15b01d |
|
22-Feb-2024 |
Warner Losh <imp@FreeBSD.org> |
libsa: Remove redundant sys/cdefs.h Sponsored by: Netflix
|
#
1d386b48 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
5ce98ee5 |
|
01-May-2023 |
Warner Losh <imp@FreeBSD.org> |
stand/userboot: Simplify code We have way more than 8k of stack for the current value of the zfs bootonce attribute. Allocate buf on the stack rather than the complicated malloc / free dance. Sponsored by: Netflix Reviewed by: tsoome, kevans, jhb Differential Revision: https://reviews.freebsd.org/D39414
|
#
4d59545d |
|
24-Feb-2023 |
Michael Paepcke <git@paepcke.de> |
stand: fix build userboot without zfs Fix regression in building userboot -DWITHOUT_LOADER_ZFS Fixes: e307eb94ae520 MFC After: 3 days Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/665
|
#
ad70f2e2 |
|
11-Jan-2023 |
Warner Losh <imp@FreeBSD.org> |
stand: create common set_currdev Pull together the nearly identical copies of set_currdev in i386, userboot and efi. Other boot loaders have variances that might be fine to use the common routine, or not. Since they are harder to test for me, and ofw and uboot do handle these setting differently, leave them be for now. Sponsored by: Netflix Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D38005
|
#
1c1783d6 |
|
11-Jan-2023 |
Warner Losh <imp@FreeBSD.org> |
stand: Create common gen_setcurrdev and replace code Replace 4 identical copies of *_setcurrdev with gen_setcurrdev to avoid having to create a 5th copy. uboot_setcurrdev is actually different and needs to remain separate (even though it's quite similar). Sponsored by: Netflix Reviewed by: fuz@fuz.su, kevans Differential Revision: https://reviews.freebsd.org/D38003
|
#
71bbe6fb |
|
16-Dec-2022 |
Warner Losh <imp@FreeBSD.org> |
stand/zfs: Add a third argument to zfs_probe_dev: part_too Pass in 'true' if you'd like to search this device's partitions or 'false' if you should just search the device. EFI and (in the future) kboot have discrete partitions that aren't accessed via the full disk device. Weird things happen if you try to search in these cases. Sponsored by: Netflix
|
#
66012c8f |
|
30-Nov-2022 |
Warner Losh <imp@FreeBSD.org> |
stand: create devinit devinit() marches through all the devices, calling the inint routines if any exist. Replace all the identical copies of this code. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D37349
|
#
1e9b2344 |
|
11-Aug-2022 |
Warner Losh <imp@FreeBSD.org> |
stand: userboot_fmtdev can be reduced to devformat devformat produces the same output as userboot_fmtdev, so just use it to reduce on the dependencies. In addition, we don't need to use the incomplete struct userboot_devdesc type, we can use struct devdesc instead (in fact, there's no userboot_devdesc defined anywhere). Sponsored by: Netflix Reviewed by: jhb (prior version) Differential Revision: https://reviews.freebsd.org/D35925
|
#
edb26097 |
|
11-Aug-2022 |
Warner Losh <imp@FreeBSD.org> |
stand: Replace zfs_fmtdev with generic devformat() Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D35973
|
#
d2d4e127 |
|
11-Aug-2022 |
Warner Losh <imp@FreeBSD.org> |
stand: Change zfs_fmtdev to take a struct devdesc * Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D35974
|
#
660c1892 |
|
12-Apr-2022 |
Kyle Evans <kevans@FreeBSD.org> |
loader: userboot: provide a getsecs() implementation We don't need it for userboot, but it avoids issues with BIND_NOW, so just provide it. time(3) isn't defined but ends up being provided by libc linked into the host process, which is generally fine. PR: 262920 Reviewed by: imp, jhb MFC after: 3 days Diferential Revision: https://reviews.freebsd.org/D34758
|
#
b4cb3fe0 |
|
11-Aug-2021 |
Toomas Soome <tsoome@FreeBSD.org> |
loader: implement mount/unmount rootfs We want to keep our root file system open to preserve bcache segment between file accesses, thus reducing physical disk IO. Reviewed by: imp, allanjude, kevans (previous version) Differential Revision: https://reviews.freebsd.org/D30848 MFC after: 1 month
|
#
e307eb94 |
|
21-Sep-2020 |
Toomas Soome <tsoome@FreeBSD.org> |
loader: zfs should support bootonce an nextboot bootonce feature is temporary, one time boot, activated by "bectl activate -t BE", "bectl activate -T BE" will reset the bootonce flag. By default, the bootonce setting is reset on attempt to boot and the next boot will use previously active BE. By setting zfs_bootonce_activate="YES" in rc.conf, the bootonce BE will be set permanently active. bootonce dataset name is recorded in boot pool labels, bootenv area. in case of nextboot, the nextboot_enable boolean variable is recorded in freebsd:nvstore nvlist, also stored in boot pool label bootenv area. On boot, the loader will process /boot/nextboot.conf if nextboot_enable is "YES", and will set nextboot_enable to "NO", preventing /boot/nextboot.conf processing on next boot. bootonce and nextboot features are usable in both UEFI and BIOS boot. To use bootonce/nextboot features, the boot loader needs to be updated on disk; if loader.efi is stored on ESP, then ESP needs to be updated and for BIOS boot, stage2 (zfsboot or gptzfsboot) needs to be updated (gpart or other tools). At this time, only lua loader is updated. Sponsored by: Netflix, Klara Inc. Differential Revision: https://reviews.freebsd.org/D25512
|
#
1ea0b9a5 |
|
25-Aug-2020 |
Matt Macy <mmacy@FreeBSD.org> |
Fix userboot after r364355 r364355 replaced init_zfs_bootenv with init_zfs_boot_options and neglected to update userboot in the process.
|
#
14243f8d |
|
24-Mar-2019 |
Ian Lepore <ian@FreeBSD.org> |
Distinguish between "no partition" and "choose best partition" with a constant. The values of the d_slice and d_partition fields of a disk_devdesc have a few values with special meanings in the disk_open() routine. Through various evolutions of the loader code over time, a d_partition value of -1 has meant both "use the first ufs partition found in the bsd label" and "don't open a bsd partition at all, open the raw slice." This defines a new special value of -2 to mean open the raw slice, and it gives symbolic names to all the special values used in d_slice and d_partition, and adjusts all existing uses of those fields to use the new constants. The phab review for this timed out without being accepted, but I'm still citing it below because there is useful commentary there. Differential Revision: https://reviews.freebsd.org/D19262
|
#
d3d381b2 |
|
31-Aug-2018 |
Kyle Evans <kevans@FreeBSD.org> |
userboot: handle guest interpreter mismatches more intelligently The switch to lualoader creates a problem with userboot: the host is inclined to build userboot with Lua, but the host userboot's interpreter must match what's available on the guest. For almost all FreeBSD guests in the wild, Lua is not yet available and a Lua-based userboot will fail. This revision updates userboot protocol to version 5, which adds a swap_interpreter callback to request a different interpreter, and tries to determine the proper interpreter to be used based on how the guest /boot/loader is compiled. This is still a bit of a guess, but it's likely the best possible guess we can make in order to get it right. The interpreter is now embedded in the resulting executable, so we can open /boot/loader on the guest and hunt that down to derive the interpreter it was built with. Using -l with bhyveload will not allow an intepreter swap, even if the loader specified happens to be a userboot with the wrong interpreter. We'll simply complain about the mismatch and bail out. For legacy guests without the interpreter marker, we assume they're 4th. For new guests with the interpreter marker, we'll read it and swap over to the proper interpreter if it doesn't match what the userboot we're using was compiled with. Both flavors of userboot are installed by default, userboot_4th.so and userboot_lua.so. This fixes the build WITHOUT_FORTH as a coincidence, which was broken by userboot being forced to 4th. Reviewed by: imp, jhb, araujo (earlier version) Approved by: re (gjb) Differential Revision: https://reviews.freebsd.org/D16945
|
#
007b82d7 |
|
08-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Stop using ../zfs/libzfs.h but instead use libzfs.h. While ../zfs/libzfs.h mostly works, there are a few situations where it does not. Eliminate the problem by using plain libzfs.h, like we do for ufs support. This fixes the weird cases, and is easier to understand. It also follows the general style convetion of avoiding ../ in #includes.
|
#
5f88ee44 |
|
14-Jun-2018 |
Warner Losh <imp@FreeBSD.org> |
bootprog_info is generated in vers.c. Move it's definition to bootstrap.h and remove all the redundant copies. Sponsored by: Netflix
|
#
9f6fd839 |
|
05-Jun-2018 |
Ian Lepore <ian@FreeBSD.org> |
Remove comments and assertions that are no longer valid after r330809. r330809 replaced duplication of devdesc struct fields with an embedded copy of the devdesc struct, to avoid fragility. That means all the scattered comments indicating that structs must match are no longer valid. Likewise asserts that attempted to mitigate some of the old fragility. Reviewed by: imp@
|
#
3dfe152d |
|
30-May-2018 |
Warner Losh <imp@FreeBSD.org> |
Pass a struct devdesc to the format commands. Use proper type rather than doing weird type-punning that happened to work because the size was right. We copied a zfs devdesc into a disk_devdesc and then after passing through a NULL pointer reinterpreted it as a zfs_devdesc. Instead, pass the base devdesc around and 'upcase' when we know the types are right. This has the happy side effect of fixing a gcc warning about bad type punning. Differential Revision: https://reviews.freebsd.org/D15629
|
#
695f33df |
|
13-Mar-2018 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix typo that misteriously passes compilation.
|
#
ad00892f |
|
12-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove d_type from devdesc. It's not needed as we can fetch it from d_dev->dv_type when we need it.
|
#
de04d704 |
|
12-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Use the actual struct devdesc at the start of all *_devdesc structs The current system is fragile and requires very careful layout of all *_devdesc structures. It also makes it hard to change the base devdesc. Take a page from CAM and put the 'header' in all the derived classes and adjust the code to match. For OFW, move the iHandle h_handle out of a slot conflicting with d_opendata. Due to quirks in the alignment rules, this worked. However changing the code to use d_opendata storage now that it's a pointer is hard, so just have a separate field for it. All other cleanups were to make the *_devdesc structures match where they'd taken some liberties that were none-the-less compatible enough to work.
|
#
4784aef9 |
|
21-Feb-2018 |
Warner Losh <imp@FreeBSD.org> |
Consolidate three copies of ZFS commands into a central location. There's no reason to have multiple copies of lszfs and reloadbe. Consolidate them into one location. Also ldi_get_size is the same everywhere (except sparc64). Make it the same everywhere as the common definition is more general and will work on spar64.
|
#
6bc86037 |
|
18-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Interact is always called with NULL. Simplify code a little by removing this argument, and expanding when rc is NULL. This effectively completes the back out of custom scripts for tftp booted loaders from r269153 that was started in r292344 with the new path tricks that obsoleted it. Submitted by: Netflix
|
#
ba25195e |
|
12-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Revert r326792, r326784, r326772, r326712 Something subtle is creating problems for disk access on ubldr. Back it out unti that can be sorted out. Sponsored by: Netflix
|
#
c8345748 |
|
11-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Fix regression with lua import Don't print when we can't find a file. Copy it instead to the error buffer. Higher level routines determine if it's appropriate to print the error message. Also, remove dead code (labeled bogusly lost functionality) since we never used that functionality. Remove unused arg from interact() too. Sponsored by: Netflix
|
#
e8e6a5f9 |
|
05-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Make putenv and getenv match the userland definition of these functions, tweak man page and one variable that shouldn't be const anymore. Sponsored by: Netflix
|
#
ca987d46 |
|
14-Nov-2017 |
Warner Losh <imp@FreeBSD.org> |
Move sys/boot to stand. Fix all references to new location Sponsored by: Netflix
|