Age | Commit message (Collapse) | Author |
|
interrupts are correctly routed to the boot cpu if that isn't the one
connected to CPU interface zero on the interrupt controller.
ok patrick@
|
|
|
|
Pointed out by Michael W. Bombardieri
|
|
|
|
|
|
|
|
|
|
remove some debug printfs, get rid of STATIC and __inline defines and
remove a bit more unused code.
ok drahn@, visa@
|
|
the release write becomes globally visible only after any writes
of the critical section are globally visible. In practice, the
reordering has not happened because the kernel runs in the total
store order mode.
Tested by and OK kettenis@
|
|
|
|
to enable RDTSCP to 0, so when solaris attempted to use the instruction
(since it wasn't filtered out of CPUID information), the CPU issued an
#UD exception.
|
|
reason to explicitly flush the cache before invalidating the TLB. The
barrier that is included in out TLB flushing code should be enough to
guarantee that the TLB walking hardware sees the updated page table
contents, so the explicit barriers can go as well. Sanitize the code
immediately surrounding the removed bits while I'm there.
Tested by jsg@, ok drahn@, visa@
|
|
|
|
|
|
This lets an idle SoC run a bit cooler.
Tested on CN5020, CN6120 and CN7130.
|
|
the vfp state via cpacr_el1. This matches the advice given in the
"Synchronization requirements for system registers" section of the ARMv8
ARM.
Without this an overdrive 1000 with A1120 (Cortex A57 r1p2) reliably
triggers "panic: VFP exception in the kernel" when init(8) is run.
ok drahn@ kettenis@
|
|
Before seabios, this didn't matter much but now it does since various
bootloaders/kernels need such treatment.
ok deraadt
|
|
ok guenther, deraadt
|
|
tables. We need to set them in the final kernel page tables as well.
ok visa@
|
|
switching code might think the old pmap is still active after a resume
which could lead to a page fault in the kernel.
ok stsp@, mlarkin@, deraadt@
|
|
|
|
|
|
unwinds that. Upon hibernate fail, this was a collection of double-frees..
ok claudio mlarkin
|
|
|
|
behaviour was needed during early development but not anymore. Suppress
the printf that accompanied these exits since linux guests go probing
wildly into msr-land on each boot.
ok deraadt
|
|
|
|
incomplete and enabling it leads ubuntu guests to try and use the feature,
with incorrect results. We can re-enable this at a later date when AVX
is properly handled.
|
|
timer. virtual timer will always be present where physical timer may
be disabled by hypervisor. Other OSes use virtual timer. ok patrick@
|
|
probe/attach approach used by mainbus.
ok mlarkin kettenis
|
|
implicit form.
ok mlarkin@
|
|
a generic AHCI controller with the twist that the MBUS window needs
to be configured in the controller registers. This enables use of
SATA on devices like the SolidRun ClearFog or Omnia Turris.
ok kettenis@
|
|
a generic XHCI controller with the twist that the MBUS window needs
to be configured in the controller registers. This enables use of
USB on devices like the SolidRun ClearFog or Omnia Turris.
ok kettenis@
|
|
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@
|
|
clock frequency API expects. Fixes login prompt over serial console.
|
|
into the /memory node which we happily physload into UVM. This leads
to a quickly panic(9)ing system when there is actual physical memory
starting at zero due to how the physeg array is sorted when using the
binary search strategy. To fix this, do not physload an empty memory
region.
ok jsg@ kettenis@
|
|
VMCS field on vmentry when we advanced %rip on the last exit (simulating
a real processor's behaviour). Handles guest "sti ; hlt" instruction
sequences, which is used in seabios as a primitive idle loop construct.
|
|
|
|
a cpuid instruction was emulated at the same time there was an interrupt
pending)
|
|
penalizes i386 guests who previously had memory allocated by vmd after
0xF0FFFFFF (the previous range end) but makes memory range calculation
in vmd/mc146818 much much easier. This diff needs to be combined with
the previous vmd diffs or you won't be able to create a vm with memory
size larger than ~3855MB.
|
|
containing .text, .rodata and .data/.bss at 2MB boundaries and set the
appropriate access permissions on the block translations.
ok patrick@
|
|
an element for each CPU. Use this mask directly instead of converting
it into a cpu number and back into a mask again when routing interrupts.
This avoids the need to handle uniprocessor systems in a special way
as they will return 0 as the mask (the relevant register is defined as RAZ)
and ignore what's written into the destination registers (the relevant
registers are defined as WI).
Future code that hatches the secondary CPUs will have to call into the
driver to establish the masks for those CPUs.
ok patrick@
|
|
space for which we have a userland mapping.
ok jca@
|
|
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@
|
|
using the "must be clear / must be set" masks for these registers, I'd
like to know (for now) when guest VMs manipulate bits in these registers
in an unexpected way. This is needed for Linux guests, as they
unconditionally set CR0 without NE, and CR4 without VMXE.
|
|
resulted in wrong cpu information being passed to the guest. Specifically
this breaks Linux guests as with the fallthrough, CPUID_LONG was cleared,
and Linux thought it was runinng on a machine incapable of 64-bit mode.
OpenBSD/NetBSD guests don't check this flag and thus weren't affected.
|
|
24KB of page tables memory.
help and luna88k-2 tests aoyama@; ok aoyama@
|
|
|
|
sense on Omron hardware.
ok aoyama@
|
|
for enhanced grepability and fewer bad surprises.
ok aoyama@
|
|
struct, rather than fetching them from arrays every time they are needed.
ok aoyama@
|