Age | Commit message (Collapse) | Author |
|
and install systems where the firmware uses a non-standard speed. This is
important for various boards that use a Rockchip SoC where the vendor thinks
using 1500000 bps as the serial console speed is a good idea (it isn't).
ok deraadt@, visa@, patrick@
|
|
OK guenther@
|
|
essentially calls into ATF to make it supply power.
ok kettenis@
|
|
of address celss in the child unit specifier should be fetched from the
interrupt controller node. Fix this as the current code doesn't work on
the MACCHIATObin for example.
ok patrick@
|
|
a common bus space tag that can be used for early console attachment.
ok kettenis@
|
|
needs (looking at you sgi, but others required this before). This is for
the circumstances we need pagesize known at compile time, not getpagesize()
runtime. Use it for malloc storage sizes, for shm, and to set pthread stack
default sizes. The stack sizes were a mess, and pushing them towards
page-aligned is healthy move (which will also be needed by the coming
stack register checker)
ok guenther kettenis, discussion with stefan
|
|
|
|
the secondary CPUs receive clock interrupts. Based on diffs from drahn@.
ok patrick@
|
|
ok patrick@
|
|
from dran@.
ok patrick@
|
|
ok patrick@
|
|
Archs not yet converted can to the jump by defining __USE_MI_MUTEX.
ok visa@
|
|
attacks by flushing the branch predictor cache (BTB) on context switches
and page faults in kkernel address space. Note that this relies on the
presence of firmware (such as Arm Trusted Firmware) that provides PSCI
services that flush the BTB on entry as described in Arm Trusted Firmware
Security Advisory TFV 6.
ok patrick@, visa@
|
|
ok kettenis@, visa@
|
|
option MULTIPROCESSOR on a single CPU.
ok patrick@
|
|
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@
|
|
`mtx_owner' becomes the first field of 'struct mutex' on i386/amd64/arm64.
ok visa@
|
|
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@
|
|
pulled in for assembly files by bringing <machine/cpu.h> and
<machine/param.h> in line with other architectures. Some minor cleanup of
those files is included.
ok patrick@
|
|
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@
|
|
Add an interface to establish additional VA=PA 1G block mappings for use by
upcoming EFI runtime services support.
ok guenther@
|
|
ok patrick@, tom@
|
|
extend ddb(4) "ps /o" output to print which CPU is currently holding the
KERNEL_LOCK().
Tested by dhill@, ok visa@
|
|
assignment and isn't used by clang/lld.
ok jsg@
|
|
ok deraadt@
|
|
pthread_exit from libpthread to libc, along with low-level bits to
support them. Major bump to both libc and libpthread.
Requested by libressl team. Ports testing by naddy@
ok kettenis@
|
|
This improves page zeroing (a rather common occurance) by over 8x.
ok kettenis@, phessler@, tom@
|
|
of the /chosen node in the device tree to decide whether the framebuffer
should be used as the console device. Most, if not all, machines will
have that set to use a serial console and there is no easy way yet to
change that.
ok jsg@
|
|
ok kettenis@
|
|
to match the official ARM docs.
ok patrick@, tom@
|
|
|
|
correct prologue if compiled with -DPROF.
ok deraadt@
|
|
Fall back on improved code that parses the FDT /memory node.
However, on machines with "real" UEFI firmware, /memory may include
reserved memory that we shouldn't use (it does on the Overdrive 1000).
On those machines, make sure that you use BOOTAA64 0.3 or later such that
the EFI memory map gets used.
For now, print out the EFI memory map to help debug any issues.
ok patrick@
|
|
- keep setbits/clearbits and virtio barriers inside _KERNEL
ok dlg@, kettenis@
|
|
default an require callers of pmap_enter() and require pmap_kenter_pa()
to explicitly request uncached mappings by passing the PMAP_NOCACHE flag
in the low bits of the physical address like we do on other architectures.
ok drahn@, patrick@
|
|
this is so drivers can advertise that they can handle 64 dma addresses
to the platform. it may choose to handle dmamaps differently based
on this flag.
tweaks and ok tom@
ok kettenis@
|
|
It doesn't compile und hasn't been working during the last decade.
ok kettenis@, deraadt@
|
|
and identified early on. For the secondary CPUs this happens late, such that
the drivers we need to spin up CPUs, such as psci(4), will be available.
This also fixes some code in simplebus(4) where the return value of
OF_getprop() was not properly checked.
Heavily based on an earlier diff from drahn@.
ok drahn@, jsg@
|
|
|
|
long double math stuff (including printf) actually work.
While there remove 'struct ieee_ldouble', which isn't defined on other
architectures.
ok deraadt@
|
|
|
|
in struct mdproc. With that, all archs have those and the __HAVE_MD_TCB
macro can be unifdef'ed as always defined.
ok kettenis@ visa@ jsing@
|
|
reset the floating-point register state upon exec.
ok guenther@
|
|
when a pmap is created and freeing it when the pmap is destroyed. This
diff relies on the fill 16-bit ASID space being implemented in the processor.
While this is documented as an optional feature in the ARMv8 architecture
reference manual, all ARMv8 processors seen in the wild so far implement
the full 16-bit space. This change incorporates changes by drahn@ to
allocate an empty page table for the lower half of the address space for the
kernel.
ok drahn@, patrick@
|
|
operating systems. Implement process_read_regs() and make
process_read_fpregs() clear the struct fpreg to avoid leaking kernel stack
contents. This makes core dumps actually usable.
ok drahn@
|
|
prototypes and duplicate defines.
Also remove PMAP_CACHE_PTE, which is unused and misleading since the page
tables are mapped as normal write-back cached memory.
Fix a bunch on KNF issues as well.
ok patrick@
|
|
code as well to improve diffability. Changes the types used in the arm64
"struct sigcontext" to avoid having to include <sys/types.h>.
ok deraadt@
|
|
ok jsg@
|
|
instead of a cpu number.
ok patrick@
|
|
Based on and ok drahn@
|