summaryrefslogtreecommitdiffstats
path: root/sys/arch/arm64/dev/efi.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* spellingjsg2021-03-111-2/+2
|
* OF_finddevice() returns -1 upon failure. Fix various checks of the returnkettenis2020-07-041-2/+2
| | | | | | value. Makes things work again on the rpi3. ok jsg@
* Implement smbios support on arm64.kettenis2019-08-041-1/+16
| | | | ok deraadt@, jsg@
* Enable the FPU when calling EFI runtime services. The new UEFI firmware forkettenis2018-07-021-1/+6
| | | | | | | the od1000 that I built myself seems to use the FPU when setting the RTC, and the UEFI standard allows this. ok drahn@
* If ACPI tables are present, set a global variable to point at theirkettenis2018-06-241-7/+15
| | | | | | | (physical) address such that acpidump(8) can read it and dump the tables on arm64 systems. ok deraadt@
* Sadly some UEFI frimware writes to mappings marked as runtime code so we can'tkettenis2018-04-061-4/+14
| | | | | | | enforce W^X for runtime services. Do respect the bits that indicate that mappings can be non-readable, non-executable or read-only though. ok patrick@
* Runtime services may (and do) use device mappings on some UEFI implementations.kettenis2018-01-121-1/+10
| | | | | | | | | | Skip these mappings during the remap-pahse as they are likely to be in a different 512G bloch as memory and SetVirtualAddressMap() shouldn't need them. But do assign a new virtual address and let efi(4) create a mapping. Add a PMAP_DEVICE flag such that pmap_enter() can continue to be used to create these mappings. ok patrick@
* Implement FUCKWIT for arm64; unmap the kernel almost entirely while userlandkettenis2018-01-101-3/+7
| | | | | | | | | | | | | | | is running. This provides protection against meltown on cores that are vilnerable (just Cortex-A75 so far) but also seems to be an essential to protect against spectre-like attacks against the kernel. This implementation only exposes a single treampoline page that does not contain any kernel virtual addresses and also hides the real virtual address of the exception vectors, which helps on cores vulnerable to "variant 3a" (Cortex-A57, Cortex-A72). The implementation is inspired by the work done by Will Deacon for Linux, but there are no knobs to turn it off. The overhead is fairly limited: around 3-4% slowdown on Cortex-A57. ok patrick@, deraadt@
* Implement support for calling EFI runtime services and use it to implementkettenis2018-01-041-0/+258
a time-of-day clock device based on the GetTime() and SetTime() services. The virtual memory mappings for the runtime services calls are implemented through a separate pmap that is only activated when we make a runtime services call. ok tom@, visa@ tested by naddy@