summaryrefslogtreecommitdiff
path: root/sys/stand/efiboot
AgeCommit message (Collapse)Author
2023-06-15Add missing include paths for libz. Not used at the moment although.rin
2023-06-14Use %zd instead of %ld for ssize_t.rin
2023-06-14Avoid void * pointer arithmetic; cast to UINT8 * explicitly.rin
No binary changes for aarch64 at least.
2023-06-14Add missing member for terminating sentinel.rin
2023-06-03adapt to ${CC_WNO_ADDRESS_OF_PACKED_MEMBER}lukem
Simplify CWARNFLAGS to use ${CC_WNO_ADDRESS_OF_PACKED_MEMBER} which works for both clang and gcc, and remove compiler-specific equivalents.
2023-06-03bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBERlukem
Provide a single variable CC_WNO_ADDRESS_OF_PACKED_MEMBER with options for both clang and gcc, to replace CLANG_NO_ADDR_OF_PACKED_MEMBER CC_NO_ADDR_OF_PACKED_MEMBER GCC_NO_ADDR_OF_PACKED_MEMBER Using the convention CC_compilerflag, where compilerflag is based on the full compiler flag name.
2022-09-21efiboot: Handle 9.99.100 by taking four, not two, digits.riastradh
We haven't used the revision part of __NetBSD_Version__ = MMmmrrpp00 in almos two decades so we're apparently reclaiming it as MMmmpppp00.
2022-08-14Align output of "version" command.jmcneill
2022-06-08Remove now unused bootdefault() function.wiz
Part of PR 56862.
2022-04-24Use physical sector size as unit for disk addresses.mlelstv
Provide new ioctl to libsa to query for sector size.
2022-04-02Update to support EFI runtime outside the kernel virtual address spaceskrll
by creating an EFI RT pmap that can be activated / deactivated when required. Adds support for EFI RT to ARM_MMU_EXTENDED (ASID) 32-bit Arm machines. On Arm64 the usage of pmapboot_enter is reduced and the mappings are created much later in the boot process -- now in cpu_startup_hook. Backward compatiblity for KVA mapped RT from old bootaa64.efi is maintained. Adding support to other platforms should be easier as a result.
2022-03-25efiboot: Add support for 'userconf' command.jmcneill
Add support for the 'userconf' command at the boot prompt and in boot.cfg, and for FDT based booting, pass the commands as a string list property named "netbsd,userconf" on the /chosen node.
2021-11-06Revert part of previous commit that broke DT booting.jmcneill
2021-11-04Fix non-ACPI builds.skrll
2021-11-03Provide the ablity to ignore ACPI with an 'acpi' command:skrll
acpi [{on|off}]
2021-10-30If a path is not specified, assume /. This makes "ls" and "ls hd0b:" workjmcneill
as expected.
2021-10-17Honour the timeout= entry in boot.cfgjmcneill
2021-10-09efiboot: add "setup" commandjmcneill
The "setup" command sets the 64-bit "OsIndications" variable to the value of EFI_OS_INDICATIONS_BOOT_TO_FW_UI and requests a reboot. On firmware that supports this, after reboot the user will be presented with the firmware setup menu.
2021-10-06EFIBOOT_FDT=yes for riscv64 toojmcneill
2021-10-06Fix bootarm build.jmcneill
2021-10-06efiboot: Make FDT support optional on a per-arch basis.jmcneill
2021-09-28efiboot: Add efigop.cjmcneill
2021-09-28efiboot: Add support for changing the video mode.jmcneill
Add a new "gop" command that can query the list of available video modes. With a mode number as argument (eg. "gop 16"), the new display mode will be selected. The "version" command prints the current display mode.
2021-09-16fix typos in word "successful".andvar
2021-09-07Remove banner printing code from bootloaders, add it to libsa.nia
This harmonizes efiboot and the various x86 bootloaders to use shared code for printing the banner. By friendly coincidence, it also adds support for specifying 'banner=' in arm efiboot's boot.cfg, as on x86.
2021-08-08s/partion/partition/ s/arrray/array/ in comments.andvar
2021-07-24efiboot: Allow "fs" as alias for "initrd", for compat with x86jmcneill
2021-07-23efiboot: Add support for SMBIOS 2.x tables.jmcneill
2021-06-23When printing memory size, don't promote to next unit size unless it is atjmcneill
two digits.
2021-06-23fix typojmcneill
2021-06-23Fix buffer size for alignment adjusted block I/O reads.jmcneill
2021-06-23print_banner: Print memory size like x86 doesjmcneill
2021-06-22efiboot: Use EFI_BLOCK_IO_PROTOCOL if EFI_DISK_IO_PROTOCOL is missingjmcneill
UEFI spec says that firmware should automatically add EFI_DISK_IO_PROTOCOL for all produced EFI_BLOCK_IO_PROTOCOL interfaces. Unfortunately U-Boot doesn't do this, so fallback to block I/O if disk I/O is not there.
2021-06-22efirng: fix va_num arg to uefi_call_wrapper for GetRNG callsjmcneill
As far as I can tell this param isn't actually used, but it is supposed to be the number of arguments passed to the called method.
2021-06-21efiboot: Add readahead support.jmcneill
Reading data through libsa file-systems ends up breaking block I/O accesses into very small (512-byte or 2048-byte) accesses. This can be very inefficient, and causes Ampere eMAG w/ BMC image direction to take _minutes_ to load the install image and kernel. So slow in fact that the default watchdog timeout will fire before it finishes. So, when loading big files, optimistically read ahead up to 64KB of data. Brings the time to boot the install ISO down to around 40 seconds -- still not ideal but way better than before.
2021-06-21efiboot: Add ASCII art.nia
2021-06-21efiboot: Use disk I/O protocol for block device access.jmcneill
EFI_DISK_IO_PROTOCOL is a simplified interface to block devices. Use this instead of EFI_BLOCK_IO_PROTOCOL for accessing block devices to simplify the code -- we no longer need to worry about the underlying media's block I/O size and alignment requirements.
2021-06-20Add support for the boot services watchdog and pet it on every block I/Ojmcneill
access. For slow media (like ISO image redirection on Lenovo HR330A BMC) this is needed because otherwise the default watchdog timeout fires before we can finish loading the kernel from install media.
2021-06-20Enable the twiddle spinner when loading the kernel, ramdisk images, andjmcneill
modules.
2021-05-31Generalize boot.cfg workaround for ISO9660; fallback to default_devicerin
whenever efi_file_path() fails (due to broken firmware), in addition to the case of ISO9660 (for which efi_file_path() succeeds but does not work correctly).
2021-05-27add bi-endian support to the libsa ufs reader and enable it in efiboot.mrg
ffs frontends to "ufs.c" now also define ufs_dinode_swap, ufs_indp_swap, and FS_MAGIC (moved from ufs.c #if segments.) these are used to call the right (32/64 bit) ffsv1/v2 version. ufs.c 'struct file' gains f_swapped member. accessors for d_magic, d_reclen, and d_ino are introduced (they need to be swapped.) sfter reading an inode from disk, read_inode() may call ufs_dinode_swap(). indirect block number and caches may be swapped. error handling in ffs_find_superblock() is cleaned up. (size is slightly reduced on some ports with this part.) defaults for new defines added to ufs.c. (XXX: we build ufs.c but i think all the consumers don't use it, and we can stop building it.) LFS support is not included. add a cut-down copy of ffs_bswap.c from the kernel. also enable bi-endian disklabel support in efiboot. most ports build and sizes compared for platforms that don't enable this code and all but one saw reduced code size. booted several platforms with new boot code.
2021-05-26add basic raidframe support to efiboot.mrg
if raid disklabel or gpt is found, add this partition with the offset/size adjusted by RF_PROTECTED_SECTORS. note don't le32toh() the disklabel. if it was wrong-endian, then getdisklabel() will have swapped it. ok jmcneill thorpej.
2021-05-21Disable ACPI support when booting big endian kernels.jmcneill
2021-05-11Consistently have ALIGN sizes as the power of two size, i.e. changeskrll
FDT_ALIGN, and use the same math(s) to round. In the process fix the load_offset for the kernel to use the EFIBOOT_ALIGN aligned address if that's what we get from AllocatePages.
2021-05-04Set VERSIONMACHINE to ${MACHINE} instead of evbarm (oops)jmcneill
2021-05-02Add RISC-V 64-bit support.jmcneill
2021-01-09Flush from kernel start, not the entry point.jmcneill
2021-01-09Style fixes, NFCI.jmcneill
2020-12-19Various clean upsskrll
- cache node where possible - remove a compiler warning - improve a comment (the round_page might not be needed)
2020-11-28Deal with devices that report either 512 or 2048 as logical block sizejmcneill
for CD9660 file-systems.