| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
tested by and ok patrick@
|
|
|
|
| |
ok kettenis@
|
|
|
|
| |
ok kettenis@
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
| |
Makes MSI/MSI-X actually work reliably on machines with agintc(4).
ok patrick@
|
|
|
|
|
|
|
|
| |
implements mapping of MSI and MSI-X interrupts with new generic functions.
Fixes a use-after-free in sone PCI device drivers that call pci_intr_string(9)
after pci_intr_establish(9).
ok deraadt@
|
|
|
|
|
|
|
|
|
| |
Lookup the address that a syscall instruction is executed from, and kill
the process if that page is writeable. This brings an aspect of W^X
behaviour to W|X mappings (in JITs not yet adapted to W^X). The goal is
to remove simple attack methods and force use of ret2libc or other more
complicated means.
ok kettenis stefan visa
|
|
|
|
|
|
|
|
|
| |
we need KVA to keep track of all the RAM pages, machines with a lot
of memory easily exhaust our KVA space. We need about 1G of KVA
per 32G of memory, so with 16G of KVA we can maintain close to 512G
of memory.
ok kettenis@
|
|
|
|
|
|
|
|
|
|
| |
because we don't have enough kernel memory available in the early bootstrap
phase to allocate the vm_page structures. Fix this by making uvm_growkernel()
work before uvm is initialized like we do on other architectures that don't
use a direct map and explicitly call it after enumerating the available
physical memory with an estimate of how much KVA we need to initialize uvm.
ok patrick@
|
|
|
|
| |
ok kettenis@
|
| |
|
|
|
|
| |
ok patrick@
|
|
|
|
|
|
|
| |
a new pci_machdep.c file such that it can be re-used by other arm64
PCI host bridge drivers in the future.
ok patrick@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the kernel, which is allocated in low memory by efiboot, is not in
the same 512 GiB L0 address space as the EFI/FDT/ACPI tables. Since
we only identity-map a single L0 entry for bootstrapping purposes we
can't reach those tables. Keep a set of spare L1 tables, currently
one, which we can dynamically enter into the identity map so that we
are able to reach those tables. While there, do the FDT mapping a
bit later in C code by calling pmap_map_early(). This allows us to
boot further on Packet's Ampere eMAGs.
Discussed with drahn@
ok kettenis@
|
|
|
|
|
|
|
| |
prefetchable and "normal" mmio at the host bridge level we can simply pass
the same extent.
ok patrick@
|
|
|
|
| |
ok patrick@
|
|
|
|
| |
'looks good' kettenis@
|
|
|
|
|
|
|
| |
commit to unbreak the build.
from kettenis@
ok drahn@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configuration done by TF-A between boards we have to shift the priorities
that we use for both the architected ICC_PMR_EL1 register and the
memory mapped priority registers on the GIC in different ways. Make this
explicit in the code and try to handle all the cases we care about.
This includes QEMU and RK3399 boards that still use the TF-A version
provided by Rockchip.
Seems to make the rockpro64 run stable with a GENERIC kernel.
ok drahn@, patrick@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A Type-C controller has multiple tasks. Even though the orientation
of the plug doesn't matter for the user, it matters for the hardware.
To be able to know how to route the SuperSpeed pins you need to know
which way the plug is connected. Also you need to know if you're a
sink/source or device/host. To get the first connection, you toggle
between the modes until you find a connection. In case you see that
a sink is connected, you can turn on USB Vbus to power the sink.
This driver explicitly does not implement USB's Type-C state machine,
but if we get more and more of these controllers it might be worth
doing. Also there's no support for Power Delivery messages yet.
ok kettenis@
|
|
|
|
| |
ok deraadt@
|
|
|
|
| |
ok phessler, deraadt
|
|
|
|
| |
ok patrick@
|
|
|
|
|
|
| |
just like we do for simplebus(4).
ok patrick@, visa@
|
|
|
|
| |
of the Armada 3720 SoC as used on the Turris Mox.
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
|
|
|
|
| |
When reading a file from a non-TFTP device, clear the bootmac variable
to prevent the kernel from going into netboot mode.
This allows loading a kernel from a disk device after having booted
efiboot from PXE.
style tweak and ok kettenis@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
|
| |
On such systems we should skip setting the voltage and just change the
clock frequency. An example of such a system is the HiKey970 where
firmware running on a microcontroller will transparently adjust the voltage.
ok patrick@
|
|
|
|
|
|
|
|
| |
caches. If the physical page was previously used by userland it is
likely that this page is still in the cache and writing to the newly
mapped page could result in unexpected behaviour.
ok kettenis@
|
|
|
|
| |
ok patrick@, dlg@, visa@
|
|
|
|
|
| |
tightly-built ramdisk kernels, set the option in per-arch Makefile.inc
based upon SMALL_KERNEL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
linux 4.19.34.
Adds support for more Intel hardware:
Broxton/Apollo Lake (was is_preliminary in 4.4)
Amber Lake (another Kaby Lake refresh)
Gemini Lake
Coffee Lake
Whiskey Lake
Cannon Lake (though no hardware with Intel graphics ever shipped)
Ice Lake (alpha support, hardware not released)
This does not add support for new radeon hardware on the AMD side as
newer radeons have a different kernel driver (amdgpu).
Thanks to the OpenBSD Foundation for sponsoring this work, kettenis@ for
helping and a bunch of other developers for testing.
|
| |
|
|
|
|
|
| |
details from the ELF header instead of faking it.
Proposal from mlarkin, tested on most architectures already
|
| |
|
| |
|
|
|
|
| |
ok kettenis@
|
|
|
|
| |
ok deraadt
|
|
|
|
| |
matches trm which is now public
|
| |
|
|
|
|
|
|
|
|
|
|
| |
that could leave `ddb_mp_mutex' locked if one CPU incremented
`db_active' while another CPU was in the critical section. When the race
hit, the debugger was unable to resume execution or switch between CPUs.
Race analyzed by patrick@
OK mpi@ patrick@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in libm since the rounding mode is in fpcr, not fpsr. Since both FPU
registers are 32-bit we can store them in the 64-bit fenv_t to make
handling the bits easier.
While there add FE_DENORMAL, which also exists on x86. Also make sure
that whenever we are being passed an exception mask, we only allow the
bits that are supported by hardware.
Found by regression tests
Debugged with Moritz Buhl
ok kettenis@
|
|
|
|
|
|
| |
those instead of the size of the parent address cells.
ok kettenis@
|
|
|
|
| |
ok patrick@
|
|
|
|
|
| |
attacks described in CVE-2017-5715 and ATF does not implement a
workaround for Cortex A76.
|
|
|
|
|
|
|
| |
so that pmap.h can be included as part of the mmap_hint regression test.
From Moritz Buhl
ok bluhm@
|
| |
|
| |
|