Age | Commit message (Collapse) | Author |
|
GPIO base register we must not replace the iterator variable with the
index of the pin inside the register.
ok kettenis@
|
|
Switch libc and ld.so to the generic stubs for these calls.
WARNING: reboot to updated kernel before installing libc or ld.so!
Time for a story...
When gcc (back in 1.x days) first implemented long long, it didn't (always)
pass 64bit arguments in 'aligned' registers/stack slots, with the result that
argument offsets didn't match structure offsets. This affected the nine system
calls that pass off_t arguments:
ftruncate lseek mmap mquery pread preadv pwrite pwritev truncate
To avoid having to do custom ASM wrappers for those, BSD put an explicit pad
argument in so that the off_t argument would always start on a even slot and
thus be naturally aligned. Thus those odd wrappers in lib/libc/sys/ that use
__syscall() and pass an extra '0' argument.
The ABIs for different CPUs eventually settled how things should be passed on
each and gcc 2.x followed them. The only arch now where it helps is landisk,
which needs to skip the last argument register if it would be the first half of
a 64bit argument. So: add new syscalls without the pad argument and on landisk
do that skipping directly in the syscall handler in the kernel. Keep compat
support for the existing syscalls long enough for the transition.
ok deraadt@
|
|
Not enabled yet. Pending firmware availability.
ok stsp@ jmatthew@
|
|
running firmware based Apple's RTKit OS. Use this code to bring up the
storage controller that implements Apple's flavour of NVMe.
ok dlg@, patrick@
|
|
|
|
channel with additional cores integrated on Apple SoCs.
ok patrick@
|
|
with LLVM 13.
|
|
assignment compared to the the legacy one supported by com over isa.
This causes the console to halt once userland takes over as no
interrupts are received. The actual address and irq can be read from
ACPI, kettenis@ already added support for arm64 which paved the way for
amd64.
Some consoles that previously attached over isa are now expected to
attach over acpi.
Thanks to patrick@ for testing on arm64.
ok kettenis@
|
|
|
|
|
|
some extra entropy.
ok deraadt@
|
|
ok jca@ naddy@
|
|
|
|
|
|
This makes PCI interrupts work on QEMU's SBSA target.
ok patrick@
|
|
that we can controll the CS# pin directly from the SPI controller itself.
Add support for this as future device trees will probably use this mode
instead of explicitly specifying a "cs-gpios" property.
ok patrick@
|
|
|
|
ok patrick@
|
|
invariant TSC and report that correctly in the guest's cpuid(0).eax
prompted by debug messages in report from Josh Grosse (josh(at)jggimi.net)
ok mlarkin@
|
|
various Apple SoCs.
ok patrick@
|
|
SYS_syscall as the nosys() function into the MD syscall entry
routines and the SYSCALL_DEBUG support. Adjust alpha's syscall
check to match the other archs. Also, make sysent const to get it
into .rodata.
With that, 'struct emul' is unused: delete it and all its references
ok millert@
|
|
in those 20 years. We're unlikely to take the macppc pmap in the
direction where it would apply.
ok kettenis@
|
|
ok dv@
Reported-by: syzbot+c773ba1ce9b2d259d27f@syzkaller.appspotmail.com
|
|
copyargs() return 0/1 and merge elf_copyargs() into it. Rename
ep_emul_arg and ep_emul_argp to have clearer meaning and type and
eliminate ep_emul_argsize as no longer necessary. Make sure
ep_auxinfo (nee ep_emul_argp) is initialized as powerpc64 always
uses it in setregs().
ok semarie@ deraadt@ kettenis@
|
|
ok patrick@
|
|
ok patrick@
|
|
ok guenther@ deraadt@
|
|
Guests running on Intel hosts that sleep on a lock might have their
process moved to another cpu core by the scheduler. If this happens,
the VMCS needs to be remotely cleared and locally loaded otherwise
vmx instructions will fail. vmd(8) will receive a failure code and
abort the guest.
This change stores the current (last) cpu the process was on before
attempting a function call that may sleep (e.g. uvm_fault(9)). Upon
function return, perform the VMCS dance if needed.
Tested with help from Mischa Pieters.
OK mlarkin@
|
|
- support axppmic via iic
ok kettenis@
|
|
writing to disk using the Open Firmware interfaces is buggy and causes
corruption of the disk. While it isn't entirely clear what versions
of Open Firmware are affected, but it seems to only affect IDE drives.
So if we detect an IDE drive, disable writing to it. This results in
a small lose of bootloader functionality (bsd.upgrade loop prevention
and flagging /etc/random.seed re-use) but that is better than losing
the ability to run OpenBSD at all.
Based on a diff by Ted Bullock (who did all the hard work of debugging
this and coming up with a viable fix).
ok deraadt@
|
|
|
|
from Ashton Fagg
|
|
Older/slower hosts could easily hit the cap under load. Set it to
the same value we use in mplock_debug.
ok mlarkin@
|
|
fail label is reachable before the sizes are known.
|
|
this hides real problems that could be found at build time
ok kettenis@ visa@, ok sashan@ on amd64/i386
|
|
is a non-single mapping for the networking subsystem, we don't yet have support
for it and apparently Linux has trouble with it as well. So for now we can
remove the code, because it uses an uninitialized variable and there's no easy
way to fix it without re-thinking the concept. The code got there in the first
place because it's a copy of the same pattern in our other IOMMU code.
ok jsg@
|
|
ok kettenis@ visa@
|
|
defined
feedback from millert@, ok kettenis@, mips64 diff from and ok visa@
|
|
|
|
|
|
In order to make progress (and protect myself from things dumping cores
left and right when I run sysupgrade) abuse the hw.smt mechanism to
only schedule processes on the primary CPU.
ok deraadt@, patrick@
|
|
Partly related to a bug reported by kn@. We should be copying out
the guest exit state (including registers) when we succesfully
return from the vcpu run loop even if we don't require an emulation
assist from userland/vmd(8). This condition was introduced when I
removed the use of yield() and instead exit the kernel if the
scheduler says we've hogged the cpu.
ok mlarkin@
|
|
semicolon
ok deraadt@
|
|
as self_reloc.c only handles the former.
ok deraadt@ kettenis@
|
|
|
|
ok patrick@
|
|
interrupt handlers and process context.
ok patrick@
|
|
of a page with a granularity of 32-bit words. Use this to expose just
those parts of memory to devices that we want the device to see. This
means that handing down a small mbuf to a network card driver no longer
gives the hardware access to other mbufs in the same page.
It turns out that bge(4) always does aligned 64-bit access to memory though.
So round up/down to the nearest 64-bit boundary to prevent triggering an
IOMMU fault.
ok patrick@
|
|
API implemented is a deadend.
OK akoshibe@ yasuoka@ deraadt@ kn@ patrick@ sthen@
|
|
This driver handles events triggered by GPIO keys such as lid status and
power button.
OK kettenis
|