summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* MFC r325834,r325997,326502: Move sys/boot to stand/kevans2018-02-12744-34/+36
| | | | | | | | | | | | | | | | This is effectively a direct commit to stable/11, due to differences between stable/11 and head. Changes to DTS in sys/boot/fdt/dts were often accompanied by kernel changes. Many of these were also risc-v updates that likely had many more dependencies to MFC. Because of this, sys/boot/fdt/dts remains as-is while everything else in sys/boot relocates to stand/. r325834: Move sys/boot to stand. Fix all references to new location r325997: Remove empty directories. r326502: Document the sys/boot -> stand move in hier.7 and the top-level README.
* Re-sync loader.mk and ficl.mk to where they should bekevans2018-02-112-18/+8
| | | | | This is a direct commit to stable/11 due to changes lost during an MFC of a move.
* Correct check: BOOT_FORTH is MK_FORTH in makefiles.kevans2018-02-111-1/+1
| | | | This is a direct commit to stable/11.
* MFC Loader Fixes 2017q4p6: r324649,r324650,r324651,r324652,r324653,r324654,kevans2018-02-11185-12869/+1832
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r324700,r324702,r324709,r324717,r324719,r324841,r324842,r324843,r324845, r324850,r324876,r324877,r324878,r324879,r324880,r324881,r324883,r324980, r324981,r324982,r324995,r325014,r325093,r325094,r325114,r325170,r325171, r325172,r325173,r325174,r325175,r325176,r325248,r325286,r325310,r325332, r325338,r325339,r325376,r325377,r325379,r325380,r325382,r325478,r325479, r325480,r325482,r325483,r325484,r325485,r325556,r325641,r325681,r325685, r325686,r325687,r325688,r325689,r325690,r325691,r325692,r325693,r325694, r325743,r325744,r325748,r325775,r325779,r325780 r324649: Move common/Makefile.inc to sys/boot/loader.mk. r324650: tweak style r324651: create defs.mk for common definitions r324652: Move all the ficl common code into ficl.mk r324653: LOADER_foo_SUPPORTED r324654: Explicitly inlcude SYSDIR in the include path r324700: loader: initialize dv_cleanup in md.c to eliminate clang warning r324702: We need to include disk.o in libuboot.a when we're building with support for disk access. r324709: Revert "Unify boot1 with loader" change r324646 r324717: libsa/ip.c: misplaced comment, ip_v is half char, not ip_p r324719: libsa/ip: stop read loop on bad fragments r324841: Use BOOTDIR more consistently in defs.mk rather than repeat sys/boot. r324842: Introduce BOOTOBJ: The top level object directory for the boot tree r324843: Stopgap fix to the mistmatch between LOADER_GELI_SUPPORT and LOADER_NO_GELI_SUPPORT. r324845: Use BOOTOBJ and BOOTDIR to find geli includes and libraries. r324850: Define LIBSA32 to LIBSA on i386 to fix build. r324876: Move fdt and uboot defines into common uboot.mk. r324877: End source directories with SRC rather than a hodgepodge of names r324878: Make at91 boot loader compile again. r324879: Prefer SRCTOP paths for bits we're grabbing from libc. r324880: Use BOOTSRC here. r324881: Use SYSDIR instead of ${.CURDIR}/../..<etc>/sys. r324883: Use preferred defined paths, rather than relative paths in fdt. r324980: Use BOOTDIR consistently. r324981: Move BINDIR definition to defs.mk, and override where it isn't /boot r324982: Remove sys/boot/arm/at91 and ixp425 r324995: loader.efi: Make framebuffer commands available for arm64 r325014: Add a 'place holder' arm struct efi_fb until a real one comes r325093: Define new EFI variables r325094: Cleanup non-arch Makefiles r325114: Use defs.mk defins in most MD code r325170: Use defs.mk values for userboot r325171: Use defs.mk name and prefer bsd.init.mk r325172: Remove the -nostdlib stuff I added. Instead, fix LDFLAGS to be honored correctly with the new Makefile.inc include order. r325173: We don't need to build a special ficl for userboot. r325174: Minor cleanup r325175: For amd64, compile both zfs and zfs32 libraries. r325176: Actually add zfs32/Makefile r325248: loader ptblread() is broken with >512B sectors r325286: efipart_strategy is using wrong offset with >512B sectors r325310: zfs.c:vdev_read() needs to be careful about large sectors r325332: loader: re-enable gzip support for x86 r325338: loader: fix BOOTSRC -> BOOTOBJ in a library path r325339: This used to have bzip2 support too. r325376: WIP: centralize machine links r325377: mostly libsa r325379: Revert "mostly libsa" r325380: Revert "WIP: centralize machine links" r325382: Cleanup stray libstand names to be libsa names. r325478: Powerpc is a 32-bit boot loader. r325479: Define LIBFICL32 to be libficl.a on i386 and libficl32.a on amd64. r325480: Use DO32 for all the places that we need to flag we're building a 32-bit version of a library. r325482: Move machine and other link creation to defs.mk r325483: MACHINE can never be powerpc64, so cleanup code that thinks it can. r325484: Prefer bsd.init.mk to src.opts.mk r325485: Centralize all 32-bit builds on 64-bit platform stuff. r325556: loader: set options before including bsd.init.mk r325641: loader.efi: efi_devpath_is_prefix should return bool r325681: boot1: avoid using NULL device path r325685: libsa32 isn't needed for i386. It's already a 32-bit platform. r325686: Simplify this if to a direct assignment. r325687: Remove all the empty help files from the powerpc build. r325688: FDT support doesn't make sense for ps3, remove it. r325689: Remove LOADER_FDT_SUPPORT as a Makefile variable. r325690: Remove LOADER_ZFS_SUPPORT as a Makefile variable r325691: Remove useless PNP define here. r325692: Replace LOADER_FIREWIRE_SUPPORT variable r325693: Move LOADER_{NO,}_GELI_SUPPORT to MK_LOADER_GELI r325694: Install the 4th files in sys/boot/forth instead of each loader r325743: Make sure the proper loader.rc gets installed. r325744: boot1: also check for NULL device r325748: Use proper include file. r325775: Add loader.conf to the list of files that are MD. r325779: Add /boot/dts to the list of default modules. r325780: Don't add /boot/dt*s* but /boot/dt*b*. Stupid think-o.
* Fix paths after r329132kevans2018-02-111-8/+5
| | | | | This is a direct commit to stable/11 due to svn's handling of merging this move being less than ideal.
* MFC r324648: Rename top level Makefile.ficl to ficl.mk.kevans2018-02-114-3/+3
|
* MFC Loader Fixes 2017q4p5: r324557,r324558,r324559,r324646,r324647kevans2018-02-1122-899/+541
| | | | | | | | | | | | | | r324557: Rename exit to efi_exit to avoid clashing with libsa exit definition r324558: Define prototype for exit and ensure references r324559: Move panic back into libsa. It's documented in libstand(3) to belong there. r324646: Unify boot1 with loader. r324647: Move orphaned man pages into new man directory from common.
* MFC Loader Fixes 2017q4p4: r324552,r324553,r324554,r324555,r324556kevans2018-02-1126-62/+36
| | | | | | | | | | | | r324552: Kill the userboot copy of libstand. r324553: Rename libstand.a to libsa.a and libstand32.a to libsa32.a r324554: Move crc32.c, util.c and gpt.c over to libsa. r324555: Honor CFLAGS modifications in Makefile.inc by using += here. r324556: Move ufsread.c
* MFC r324551: Move lib/libstand to sys/boot/libsakevans2018-02-1183-171/+157
|
* MFC Loader Fixes 2017q4p3: r324460,r324471kevans2018-02-1124-54/+6
| | | | | | | r324460: Rather than laying whack-a-mole with including the path to stand.h, always include it. r324471: Fix typos: `stand alon{e,g}` should be spelled like `standalone`
* MFC Loader Fixes 2017q4p2: r324453, r324454kevans2018-02-116-3/+21
| | | | | | r324453: Create sys/boot/libsa and build libstand.a there r324454: Disconnect libstand from the build.
* MFC Loader Fixes 2017q4p1: r324321,r324359,r324360,r324388,r324449,r324450,kevans2018-02-1138-322/+122
| | | | | | | | | | | | | | | | | | | | | r324451,r324452 r324321: This README file was quite relevant for FreeBSD 3 or 4. No more. r324359: Add efi_devpath_is_prefix r324360: Encapsulate ZFS preferences into efi_zfs_is_preferred r324388: Unbreak building efiboot with MK_ZFS == no r324449: Prefer ${LIBSTAND} to -lstand r324450: Define SASRC and use it r324451: Add missing -I${SASRC} in a couple of places so that stand.h doesn't accidentally come in via host pollution. r324452: Define LIBSA* and use them instead of overloaded LIBSTAND
* Fix regression issue after r328973:hselasky2018-02-111-0/+1
| | | | | | | | | | | | | The lint target does no longer exist in FreeBSD head and the __alloc_size2() support for lint was missing when r328973 was MFCed. Add support for __alloc_size2() to the lint target. This is a direct commit. Found by: antoine@ Pointy hat: hselasky@ Sponsored by: Mellanox Technologies
* MFC r308926:eadler2018-02-111-0/+4
| | | | | | | Add Intel Atom Cherryview SOC HSUART support PR: 207910 Submitted by: johannes@brilliantservice.co.jp
* MFC r304007:eadler2018-02-111-1/+2
| | | | | | | Correct the history of where ps first appeared. PR: 211741 Submitted by: Sevan Janiyan <venture37@geeklan.co.uk>
* Back out MFC r324558: Define prototype for exit and ensure referenceskevans2018-02-114-12/+0
| | | | This went terribly wrong
* MFC r326615: De-const to match changes in userboot.hkevans2018-02-111-2/+2
|
* Back out exit() change in r329114; stable/11 was not ready for this one yetkevans2018-02-111-1/+0
| | | | This is a direct commit to stable/11.
* MFC Loader Fixes 2017q3: r320547,r320553,r321621,r321844,r321969,r321991,kevans2018-02-1181-1170/+1761
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r322037,r322038,r322039,r322040,r322056,r322074,r322542,r322592,r322593, r322896,r322923,r323671,r322930,r322931,r322932,r322933,r322934,r322935, r322936,r322937,r322938,r322939,r322941,r323062,r323063,r323064,r323065, r323100,r323131,r323174,r323258,r323261,r323272,r323367,r323379,r323389, r323407,r323428,r323436,r323494,r323496,r323497,r323541,r323554,r323589, r323707,r323867,r323885,r323886,r323895,r323896,r323897,r323905,r323906, r323907,r323908,r323909,r323952,r323991,r324099,r324558,r326445,r326609, r326610 This batch includes a special kludge to fix powerpc loader build; <stdlib.h> was included after <stand.h> there, causing problems with DEBUG_MALLOC bits. Include <stdlib.h> a little bit earlier to fix the build with the intention of removing this when eventually libsa silently replaces stdlib.h with stand.h. r320547: Link EFI/uboot loaders with -znotext r320553: Integer underflow in efipart_realstrategy when I/O starts after end of disk r321621: Always set the receive mask in loader.efi. r321844: Clean up style in print_state(..) and pager_printf(..) r321969: Fix the return types for printf and putchar to match their libc r321991: Revert r321969 r322037: Add stpcpy and stpncpy to libstand r322038: Add definitions and utilities for EFI drivers r322039: Move EFI ZFS functions to libefi r322040: Add EFI utility functions to libefi r322056: Move EFI fmtdev functionality to libefi r322074: libefi/time.c cstyle cleanup r322542: loader.efi: repace XXX with real comments in trap.c r322592: Remove unused defines. r322593: Define proposed GUID for FreeBSD boot loader variables. r322896: Make spinconsole platform independent and hook it up into EFI loader r322923: Hide length of geli passphrase during boot. r323671: Fix language used in the r322923. r322930: Move efi_main into efi/loader r322931: Cleanup efi_main return type r322932: Use the loader.efi conventions for the various EFI tables. r322933: No need for MK_ZFS around these: they are by their nature only active when MK_ZFS is true. r322934: _STAND is sometimes defined on the command line. Make the define here match. r322935: Fix warnings due to type mismatch. r322936: Remove useless 'static' for an enum definition. r322937: Forward declare struct dsk to avoid warnings when building libi386. r322938: Link in libefi for boot1 r322939: Use efi_devpath_str for debug path info. r322941: Eliminate redunant device path matching. r323062: Make efichar.c routines available to libefi. r323063: boot1.efi: print more info about where boot1.efi is loaded from r323064: Exit rather than panic for most errors. r323065: Save where we're booted from r323100: libstand: nfs_readlink() should return proper return code r323131: Revert r322941: Eliminate redundant device matching functions r323174: Fix loader bug causing too many pages allocation when bootloader is U-Boot r323258: ucs2len r323261: Fix armv6 build r323272: Be consistent and do return (1); r323367: Mark init_chroot and init_script variables as deprecated. r323379: It's been pointed out that init_script at least is useful w/o r323389: loader.efi: chain loader should provide proper device handle r323407: boot1 generate-fat: generate all templates at once r323428: r323389 breaks the kernel build when WITHOUT_ZFS is defined in src.conf r323436: boot1: remove BOOT1_MAXSIZE default value r323494: loader should support large_dnode r323496: libstand: tftp_open() can leak pkt on error r323497: libefi: efipart_open should check the status from disk_open r323541: libefi: efipart_realstrategy rsize pointer may be NULL r323554: Increase EFI boot file size frok 128k to 384k r323589: loader: biosmem.c cstyle cleanup r323707: loader: biosmem allocate heap just below 4GB r323867: libefi: devicename.c cleanups r323885: libefi: efi_devpath_match() should return bool r323886: libefi: efipart.c should use calloc() r323895: libefi: efi_devpath_match local len should be unsigned r323896: r323885 did miss efilib.h update r323897: efilib.h: typo in structure member description r323905: libefi: pdinfo_t pd_unit and pd_open should be unsigned r323906: libefi: efipart_strategy() should return ENXIO when there is no media r323907: libefi: efipart.c cstyle fix for efipart_print_common() r323908: libefi: efipart_hdinfo_add_filepath should check strtol result r323909: libefi: define EISA PNP constants r323952: After the r317886 support for TFTP and NFS can be enable simultaneously. r323991: libefi: efipart_floppy() will should not pass acpi pointer if the HID test fails r324099: Compile loader as Little-Endian on PPC64/POWER8 r324558: Define prototype for exit and ensure references r326445: Fix random() and srandom() prototypes to match the standard. r326609: Make putenv and getenv match the userland definition r326610: Fix random() prototype to match the system. PR: 219000 221001 222215 Relnotes: yes ("The length of the geli passphrase is hidden during boot")
* MFC r328895: Correct Russia spelling in regdomain.xmlemaste2018-02-101-1/+1
| | | | PR: 225658
* MFC r303725 (oshogbo): Fix misleading description of the -b option in thekevans2018-02-101-2/+2
| | | | geli init command.
* MFC Loader Fixes 2017q2: r316437,r316577,r316578,r316585,r316590,r316612,kevans2018-02-1076-1263/+2460
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r316625,r316628,r316654,r316682,r316704,r316771,r317092,r317097,r317099, r317652,r317785,r317886,r317887,r318142,r318320,r318356,r318678,r318754, r318982,r318986,r318987,r318988,r318989,r318990,r318991,r318992,r318993, r318994,r318999,r319083,r319084,r319085,r320011,r320234,r320288,r320304, r320467,r320482 r316437: Small cleanup to make i386/loader match efi/loader boot environment code r316577: loader: part.c cstyle cleanup r316578: loader: want mechanism to avoid RA with bcache r316585: loader: zfs reader should check all labels r316590: libstand/dosfs: cache FAT32 in 128 Kb blocks to save loader memory r316612: In r298230 the value of HEAP_MIN was changed from 3MB to 64MB. Correct a comment. r316625: Do not use -msoft-float with intention of disabling FP on aarch64 r316628: Silence GCC warning by initializing the local variable. r316654: loader: r316585 did miss userboot update r316682: loader: r316585 did miss sparc/ofw r316704: loader.efi: only fetch zfs pool guid for the actual boot device r316771: loader: Avoid possible overflow via environment variable r317092: loader: zfs reader vdev_probe should check for minimum device size r317097: loader: F_READ/F_WRITE should be checked against masked flag r317099: loader: uboot disk ioctl should call disk_ioctl r317652: loader.efi: ResetSystem does not use data with EFI_SUCCESS r317785: zfsboot: drvsize() may be unusable on some systems r317886: distinguish NFS versus TFTP boot by rootpath r317887: loader: network read rework r318142: libstand: NULL pointer dereference in rarp r318320: loader: add ip layer code into libstand r318356: libstand: increase nfs max read size to 16k r318678: Replacing iterating over rootpath by strsep(3). r318754: Pass -N directly to ld via -Wl rather than passing it to the compiler driver. r318982: Pass a "FREEBSD" user-class in PXE dhcp request r318986: add a comment on vendor index 19 and 20 to avoid confusion r318987: Support URI scheme for root-path in netbooting r318988: Always build tftpfs support along with nfs for pxeboot r318989: Always issue the pxe request r318990: Partially revert r314948 r318991: Document recent changes on pxeboot r318992: Capitalize DHCP r318993: Use the usual FreeBSD spelling for the DHCP user class r318994: Catch with the change in the user class r318999: Update the comments concerning net_parse_rootpath to reflect what it is now r319083: Followup on the user-class changes r319084: Small cleanup in dev_net.c r319085: use the same option list for dhcp discovery and request r320011: Add chain loader support for loader r320234: Make structure padding explicit in EFI_MEMORY_DESCRIPTOR r320288: Allow Clang's integrated assembler to assemble boot0 r320304: loader.efi: Disable smbios for arm r320467: loader: chain load relocate data declaration is bad r320482: As with arm64 mark the EFI PE header as allocated on arm. PR: 218473
* MFC Loader Fixes 2017q1: r311458,r312237,r312314,r312374,r312947,r313042,kevans2018-02-1072-2214/+2778
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r313047,r313166,r313328,r313332,r313333,r313337,r313348,r313349,r313389, r313442,r313451,r313575,r313645,r313710,r314114,r314213,r314275,r314945, r314948,r315008,r315408,r315427,r315645,r315646,r315648,r315653,r315850, r316064,r316078,r316079,r316100,r316104,r316111,r316112,r316171,r316279, r316280,r316287,r316311,r316343,r316424,r316436 r311458: Use compiler driver to link BERI boot loaders r312237: loader.efi: find_currdev() can leak memory r312314: loader: move device path definitions to include/efidevp.h r312374: loader: efi devpath api usage should be more aware of NULL pointers r312947: Remove "-Xassembler -G0" from CFLAGS. r313042: loader.efi environment related cleanups r313047: loader: disk/part api needs to use uint64_t offsets r313166: loader: libefi/env.c warnings in arm build r313328: loader: Implement disk_ioctl() to support DIOCGSECTORSIZE and DIOCGMEDIASIZE. r313332: loader: bcache read ahead block count should take account the large sectors r313333: loader: Replace EFI part devices. r313337: loader: 313329 missed ZFS guard in loader/main.c r313348: loader: biosdisk fix for 2+TB disks r313349: loader: disk io should not use alloca() r313389: efipart is also using the '%S' printf format, add -Wno-format for it. r313442: loader: possible NULL pointer dereference in efipart.c r313451: loader: possible NULL pointer dereference in bcache.c r313575: makefs: make the buffer functions look exactly like the kernel ones r313645: loader: implement MEDIA_FILEPATH_DP support in efipart r313710: loader: cstyle fixes and DIOCGMEDIASIZE should use uint64_t r314114: Use LDFLAGS with CC instead of _LDFLAGS. r314213: Remove control+r handling from geliboot's pwgets() r314275: Remove unused macro from common/drv.c. r314945: Some style(9) fixes. No functional changes. r314948: Try to extract the RFC1048 data from PXE. r315008: r314948 seems to be missing a variable or two that will break r315408: loader: remove open_disk cache r315427: loader: biosdisk should report IO error from INT13 r315645: loader: disk_cleanup was left in userboot_disk.c r315646: loader: pxe.h constants have wrong values r315648: libstand: verify value provided by nfs.read_size r315653: loader: verify the value from dhcp.interface-mtu and use snprintf o set mtu r315850: The original author abused Nd (one-line description, used by makewhatis) r316064: Fix build with path names with 'align' or 'nop' in them. r316078: gpt*boot: Save a bit more memory when LOADER_NO_GELI_SUPPORT is specified r316079: Simply retire the sedification of the boot2.s file. r316100: Remove -fno-guess-branch-probability and -fno-unit-at-a-time. r316104: Use `NO_WCAST_ALIGN` instead of spelling it out as -Wno-cast-align in CFLAGS r316111: loader: move bios getsecs into time.c r316112: loader: ls command should display file types properly r316171: xfsread inlined uses more space, so remove the inline tag. r316279: loader: efipart should check disk size from partition table r316280: loader: simplify efi_zfs_probe and avoid double probing for zfs. r316287: Remove OLD_NFSV2 from loader and libstand r316311: Add explicit_bzero() to libstand, and switch GELIBoot to using it r316343: Implement boot-time encryption key passing (keybuf) r316424: Fix sparc64 build broken by r316343 and r316076 r316436: Restore EFI boot environment functionality broken in r313333 PR: 216940 217298 217935
* MFC libstand catch-up: r305116,306534,306538,306552,306638kevans2018-02-102-2/+10
| | | | | | | | | | r305116: recvtftp() is broken for large files, report file size r306534: cd9660_open should check for padding r306538: cstyle fix of cd9660_open in libstand r306552: Fix remaining cstyle issues in libstand/cd9660.c r306638: Fix remaining bugs in libstand/cd9660.c reported by Bruce Evans. PR: 200500
* MFC r325795 (by imp):mav2018-02-101-0/+1
| | | | | Belatedly add opt_nvme.h to fix building nvme.ko outside of a kernel build.
* MFC r327606: Handle misconfigured/nonexistent pcidev for comconsole insteadkevans2018-02-091-0/+10
| | | | | | | | | of BTX panic. [This is effectively a direct commit to stable/11 due to path restructuring in head. Diffs have simply been applied to previous location] PR: 203319
* MFC r306325, r306329-r306330, r306333, r306620-r306622, r307544, r307550, ↵manu2018-02-0946-1051/+1363
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r318137, r319125, r319295 r306325 by marcel: Replace the use of linker sets with constructors for both the formats and schemes. Formats and schemes are registered at runtime now, rather than collected at link time. r306329 by marcel: Eliminate the use of EDOOFUS. The error code was used to signal programming errors, but is really a poor substitute for assert. And less portable as well. r306330 by marcel: Avoid depending on the <sys/endian.h> header for le*enc and be*enc. Not only is the header unportable, the encoding/decoding functions are as well. Instead, duplicate the handful of small inlines we need into a private header called endian.h. Aside: an alternative approach is to move the encoding/decoding functions to a separate system header. While the header is still nonportable, such an approach would make it possible to re-use the definitions by playing games with include paths. This may be the preferred approach if more (build) utilities need this. This change does not preclude that. In fact, it makes it easier. r306333 by marcel: Portability changes: 1. macOS nor Linux have MAP_NOCORE nor MAP_NOSYNC. Define as 0. 2. macOS doesn't have SEEK_DATA nor SEEK_HOLE. Define as -1 so that lseek will return -1 (with errno set to EINVAL). 3. gcc correctly warns that error is assigned but not used in image_copyout_region(). Fix by returning on the first error. r306620 by marcel: Replace STAILQ with TAILQ. TAILQs are portable enough that they can be used on both macOS and Linux. STAILQs are not. In particular, STAILQ_LAST does not next on Linux. Since neither STAILQ_FOREACH_SAFE nor TAILQ_FOREACH_SAFE exist on Linux, replace its use with a regular TAILQ_FOREACH. The _SAFE variant was only used for having the next pointer in a local variable. r306621 by marcel: Prefer <stdint.h> over <sys/types.h>. While here remove redundant inclusion of <sys/queue.h>. Move the inclusion of the disk partitioning headers out of order and inbetween standard headers and local header. They will change in a subsequent commit. r306622 by marcel: Replace OFF_MAX with INT64_MAX. The former is defined on Linux. r307544 by marcel: o Provide a private definition for UUIDs (mkimg_uuid_t) because UUIDs are not portable. o Move mkimg_uuid() to a new file and merge both gpt_uuid_enc() and vhd_uuid_enc() into a single mkimg_uuid_enc() that lives in the same file. o Move the OS-specific implementation of generating a UUID to osdep_uuidgen() and provide the implementations for FreeBSD, macOS and Linux. o Expect the partitioning scheme headers to be found by having a search to the directory in which the headers live. This avoids conflicts on non-FreeBSD machines. r307550 by imp: Add a new flag to mkimg (-a num) to specify the active partition for those partitioning schemes that have this concept. Implement it as an override for mbr's setting 0x80 in the flags for the first partition when we have boot code. Differential Revision: https://reviews.freebsd.org/D4403 r318137: mkimg: Add -C argument to specify maximum capacity Add a -C option to specify a maximum capacity for the final image file. It is useful to control the size of the generated image for sdcard or when we will add dynamic size partition. Add --capacity which is a shorthand to define min and max capacity at the same time. Reviewed by: bapt, marcel, wblock (manpages) Sponsored by: Gandi.net Differential Revision: https://reviews.freebsd.org/D10509 r319125: mkimg: Correct an off by one error in the PMBR size The PMBR last sector should be number of sector - 1 (As stated in UEFI Spec 2.6 page 118 table 17). This fixes warning printed by linux tools like parted or fdisk. Sponsored by: Gandi.net r319295 by ngie: Update the usr.bin/mkimg golden test output files after ^/head@r319125 ^/head@r319125 changed the location of the backup pmbr, requiring the output files to be regenerated, since they're binary disk dumps. The output files were regenerated with "make rebase"--fixed in ^/head@r319294. MFC with: r319125, r319294 PR: 219673 Sponsored by: Dell EMC Isilon
* MFC r328611: Try to preallocate receive memory early.mav2018-02-091-1/+12
| | | | | | We may not have enough contiguous memory later, when NTB connection get established. It is quite likely that NTB windows are symmetric and this allocation remain, but even if not, we will just reallocate it later.
* MFC r328450: Use bus_dmamem_alloc(9) KPI instead of contigmalloc(9).mav2018-02-091-17/+42
| | | | | I suppose it should make this code NUMA-aware with recent NUMA drop-in, trying to allocate shared memory buffers from domain closer to NT-bridge.
* MFC r309062: Release laundered vnode pages to the head of the inactivekevans2018-02-088-131/+61
| | | | | | | | | | | | | queue. The swap pager enqueues laundered pages near the head of the inactive queue to avoid another trip through LRU before reclamation. This change adds support for this behaviour to the vnode pager and makes use of it in UFS and ext2fs. Some ioflag handling is consolidated into a common subroutine so that this support can be easily extended to other filesystems which make use of the buffer cache. No changes are needed for ZFS since its putpages routine always undirties the pages before returning, and the laundry thread requeues the pages appropriately in this case.
* iw_cxgbe: Manually backport changes related to QP flush. This fixes anp2018-02-084-138/+258
| | | | | | | | | panic where poll_cq sees an empty RQ while processing an incoming SEND for a QP that is being taken down. This is a direct commit to stable/11. Sponsored by: Chelsio Communications
* MFC r307322,r307323,r307324,r307326,r307327,r307338,r307879,r307908,r307911,kevans2018-02-0844-503/+632
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r307942,r307950,r307951,r307954,r307955,r308125,r308195,r308476,r308534, r308535,r308776,r308843,r310236,r310726: Loader fixes, 2016q4 r307322: Remove /boot/boot.conf, deprecated for 16 years r307323: Remove fetching of pInterp. r307324: Create a new linker set, Xficl_compile_set which contains a list of functions to call to register new forth words. r307326: In UEFI mode expose the SMBIOS anchor base address via kenv r307327: Update i386 build of loader.efi (but leave it disabled) so that we at least build it now. r307338: Create a pcibios-version environment FORTH word. r307879: Preliminary support for EFI in boot loader. r307908: Fix the build on both arm64 and when WITHOUT_FORTH is defined. r307911: Add better comment... r307942: Really make WITHOUT_FORTH (MK_FORTH==no) work. r307950: Add it (Makefile.ficl) to the right place r307951: Fix two backwards tests. r307954: Back out the move to the loader script from -N. r307955: LIBSTAND goes last, so put it last here too. r308125: In loader.efi, instead of exiting directly, try to fallback. r308195: efinet_dev_print should honor verbose option. r308476: boot/forth spelling issue in forth word r308534: The file_loadraw function grew an argument, update install function r308535: Add support for LOADER_RC setting in the pkgfs manifes r308776: loader: zfs toplevel vdev must have spa set. r308843: loader: smbios version check is not correct r310236: Renumber license clauses to avoid skipping #3 r310726: cdboot: add explict suffix to ambiguous or instruction PR: 214375
* MFC r303555,r303556,r303936,r303962,r304317,r304532,r305026,r305107,r305132,kevans2018-02-0845-139/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r305178,r305353,r305814,r306159,r306380,r306504: Loader fixes, 2016q3 r303555: bcache should support reads shorter than sector size r303556: Improve boot loader quote parsing r303936: Add kernel environment variables under smbios.system r303962: Add the missing space between .asciz directive and opening quote for some lines with #ifdef BTXLDR_VERBOSE/#endif r304317: boot1.efi Free() should check for NULL to provide consistent behavior r304532: Replace sprintf -> snprintf for command_errbuf provisioned from dynamic content. r305026: Emulate efi_cons_poll when WaitForKey is not available r305107: Create a hook 'post-initialize' for people that want to define something to read in .conf files after all other .conf files for the purpose of overriding. r305132: Remove accidentally committed stray comment. r305178: bd_int13probe() should check extended info if sector info is bad r305353: Don't use -N to set the OMAGIC with data and text writeable and data not page aligned. r305814: ufsread: Do not cast struct direct from void * r306159: Consistently declare getsecs(void) with proper return type and void when no arguments are present. r306380: loader command interpreter should reset command_errmsg r306504: Fix a cluster of bugs in list EFI environment variables PR: 204602, 211958, 211958 Relnotes: yes ("Improve boot loader quote parsing")
* MFC 319454: Honor the requested crid when running a test.jhb2018-02-081-4/+1
| | | | | | Otherwise, the kernel is free to choose an aribtrary crypto device rather than the requested device subverting tests that force the use of a specific device.
* MFC r328412: vt: add Ctrl+/ key mappingemaste2018-02-081-1/+1
| | | | | | | | | This matches Xorg's handling of Ctrl+/ and may be useful as a tmux escape. PR: 212197 Submitted by: martin at sugioarto.com Relnotes: Yes
* Fix rootgen.sh to reflect proper bootloader pathskevans2018-02-071-1/+1
| | | | | This is a direct commit to stable/11 to use sys/boot instead of stand/. It will be reverted once the move from sys/boot to stand/ gets an MFC.
* MFC r326873,r326874,r326875,r326883,r326884,r326885,r326954,r328865kevans2018-02-072-0/+586
| | | | | | | | | | | | | | | | | | | r326873: Script that knows how to put boot blocks onto a device. r326874: Script to generate minimal boot images for each of the 24 supported r326875: Add missing of=/dev/${dev}s${s} when installing zfsboot. r326883: For now, make the gpart commands verbose r326884: Be a little verbose and list the loader files we're putting on r326885: Use -h -D in preference to -D so that the serial port gets the interactive console. r326954: Support more images (but still no geli) r328865: Flesh out the creation of sparc64 UFS images.
* MFC r328694:hselasky2018-02-071-0/+2
| | | | | | | Make sure the LinuxKPI's internal ERESTARTSYS error code gets translated into ERESTART for mmap and page fault calls aswell. Sponsored by: Mellanox Technologies
* MFC r328436 and r328731:hselasky2018-02-071-215/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Decouple Linux files from the belonging character device right after open in the LinuxKPI. This is done by calling finit() just before returning a magic value of ENXIO in the "linux_dev_fdopen" function. The Linux file structure should mimic the BSD file structure as much as possible. This patch decouples the Linux file structure from the belonging character device right after the "linux_dev_fdopen" function has returned. This fixes an issue which allows a Linux file handle to exist after a character device has been destroyed and removed from the directory index of /dev. Only when the reference count of the BSD file handle reaches zero, the Linux file handle is destroyed. This fixes use-after-free issues related to accessing the Linux file structure after the character device has been destroyed. While at it add a missing NULL check for non-present file operation. Calling a NULL pointer will result in a segmentation fault. Fix some recent regressions after r328436 in the LinuxKPI: 1) The OPW() function macro should have the same return type like the function it executes. 2) The DEVFS I/O-limit should be enforced for all character device reads and writes. 3) The character device file handle should be passable, same as for DEVFS based file handles. Reviewed by: kib @ Reported by: jbeich @ Sponsored by: Mellanox Technologies
* Revert r328974, r307387 was not supposed to be part of it.manu2018-02-0746-1389/+1130
|
* MFC r306325, r306329-r306330, r306333, r306620-r306622, r307387, r307544, ↵manu2018-02-0746-1130/+1389
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r307550, r318137, r319125, r319295 r306325 by marcel: Replace the use of linker sets with constructors for both the formats and schemes. Formats and schemes are registered at runtime now, rather than collected at link time. r306329 by marcel: Eliminate the use of EDOOFUS. The error code was used to signal programming errors, but is really a poor substitute for assert. And less portable as well. r306330 by marcel: Avoid depending on the <sys/endian.h> header for le*enc and be*enc. Not only is the header unportable, the encoding/decoding functions are as well. Instead, duplicate the handful of small inlines we need into a private header called endian.h. Aside: an alternative approach is to move the encoding/decoding functions to a separate system header. While the header is still nonportable, such an approach would make it possible to re-use the definitions by playing games with include paths. This may be the preferred approach if more (build) utilities need this. This change does not preclude that. In fact, it makes it easier. r306333 by marcel: Portability changes: 1. macOS nor Linux have MAP_NOCORE nor MAP_NOSYNC. Define as 0. 2. macOS doesn't have SEEK_DATA nor SEEK_HOLE. Define as -1 so that lseek will return -1 (with errno set to EINVAL). 3. gcc correctly warns that error is assigned but not used in image_copyout_region(). Fix by returning on the first error. r306620 by marcel: Replace STAILQ with TAILQ. TAILQs are portable enough that they can be used on both macOS and Linux. STAILQs are not. In particular, STAILQ_LAST does not next on Linux. Since neither STAILQ_FOREACH_SAFE nor TAILQ_FOREACH_SAFE exist on Linux, replace its use with a regular TAILQ_FOREACH. The _SAFE variant was only used for having the next pointer in a local variable. r306621 by marcel: Prefer <stdint.h> over <sys/types.h>. While here remove redundant inclusion of <sys/queue.h>. Move the inclusion of the disk partitioning headers out of order and inbetween standard headers and local header. They will change in a subsequent commit. r306622 by marcel: Replace OFF_MAX with INT64_MAX. The former is defined on Linux. r307387 by marcel: Switch to using the portable partition scheme headers. r307544 by marcel: o Provide a private definition for UUIDs (mkimg_uuid_t) because UUIDs are not portable. o Move mkimg_uuid() to a new file and merge both gpt_uuid_enc() and vhd_uuid_enc() into a single mkimg_uuid_enc() that lives in the same file. o Move the OS-specific implementation of generating a UUID to osdep_uuidgen() and provide the implementations for FreeBSD, macOS and Linux. o Expect the partitioning scheme headers to be found by having a search to the directory in which the headers live. This avoids conflicts on non-FreeBSD machines. r307550 by imp: Add a new flag to mkimg (-a num) to specify the active partition for those partitioning schemes that have this concept. Implement it as an override for mbr's setting 0x80 in the flags for the first partition when we have boot code. Differential Revision: https://reviews.freebsd.org/D4403 r318137: mkimg: Add -C argument to specify maximum capacity Add a -C option to specify a maximum capacity for the final image file. It is useful to control the size of the generated image for sdcard or when we will add dynamic size partition. Add --capacity which is a shorthand to define min and max capacity at the same time. Reviewed by: bapt, marcel, wblock (manpages) Sponsored by: Gandi.net Differential Revision: https://reviews.freebsd.org/D10509 r319125: mkimg: Correct an off by one error in the PMBR size The PMBR last sector should be number of sector - 1 (As stated in UEFI Spec 2.6 page 118 table 17). This fixes warning printed by linux tools like parted or fdisk. Sponsored by: Gandi.net r319295 by ngie: Update the usr.bin/mkimg golden test output files after ^/head@r319125 ^/head@r319125 changed the location of the backup pmbr, requiring the output files to be regenerated, since they're binary disk dumps. The output files were regenerated with "make rebase"--fixed in ^/head@r319294. MFC with: r319125, r319294 PR: 219673 Sponsored by: Dell EMC Isilon
* MFC r328237:hselasky2018-02-072-4/+4
| | | | | | | | | | | | | | | | Use the __alloc_size2 attribute where relevant. This follows the documented use in GCC. It is basically only relevant for calloc(3), reallocarray(3) and mallocarray(9). NOTE: Without this change clang 5.0.1 can produce incorrect optimisation code for static processing of data using the allocated object. For example this has been seen compiling the mlx4 core module, which allocates a fixed size array which is then sorted by a fixed order loop. The optimised result, -O2, is incorrect unless this patch is in place. Suggested by: Mark Millard Reference: https://docs.freebsd.org/cgi/mid.cgi?9DE674C6-EAA3-4E8A-906F-446E74D82FC4
* MFC r328326:ae2018-02-071-3/+32
| | | | | | | | | When IPv6 packet is handled by O_REJECT opcode, convert ICMP code specified in the arg1 into ICMPv6 destination unreachable code according to RFC7915. Obtained from: Yandex LLC Sponsored by: Yandex LLC
* MFC r324821:mmel2018-02-071-2/+2
| | | | Fix spelling.
* MFC r325438:mmel2018-02-072-6/+6
| | | | | All CP15 registers are bit fields or counters, don't use signed type when accessing them.
* MFC r325364,r326794:mmel2018-02-071-29/+177
| | | | | | | | r325364: Add alignment support to __libc_allocate_tls(). r326794: Rework alignment handling in __libc_allocate_tls() for Variant I of TLS layout.
* Adjust MFC in r328944 to stable/11.kib2018-02-061-1/+1
| | | | | | This is a direct commit to the branch. Sponsored by: The FreeBSD Foundation
* MFC of 328647.mckusick2018-02-061-1/+1
| | | | avoid segment fault in g_journal
* MFC of 328643.mckusick2018-02-061-2/+19
| | | | fix vn_printf listing of its union
* MFC of 328304 and 328382.mckusick2018-02-062-2/+19
| | | | Do not dedup egid (group entry 0)
OpenPOWER on IntegriCloud