Age | Commit message (Collapse) | Author |
|
|
|
macros to make kernel build again, same diff as armv7.
ok kettenis visa
|
|
|
|
From Thaison Nguyen
|
|
This makes the system recognize and configure Netgear ProSecure UTM25.
Of the network ports, LAN1-4 and WAN1 are functional. WAN2 does not work
for some reason. Even though WAN1 has a separate link to the SoC, the
connection appears to go through the same switch that the LAN ports use.
At the moment, the system relies on U-Boot to set up the switch so that
the LAN and WAN segments stay separate.
Initial diff and input from Thaison Nguyen, thank you!
|
|
Detect octeon board model in one place, and replace firmware-supplied
board_type with an abstract model identifier in driver code. This makes
it easier to manage with different products, and board flavours, that
happen to use the same model information, such as board_type.
|
|
This makes various receive and transmit event counters readable. This
additionally replaces the old, and somewhat unusual, way of updating
error counters in ifp.
Most of the hardware counters are 32 bits wide. Hence the code polls
them periodically and adds the values to 64-bit software counters.
The hardware counters are cleared when read.
|
|
OK naddy@; no objections from kettenis@
|
|
This makes the cycle counter usable as timecounter on multiprocessor
machines.
Idea from Linux.
Tested on CN5020, CN6120, CN7130 and CN7360.
Looks reasonable to kettenis@
|
|
The processor does not perform speculative reads and only one of its
execution pipes should issue memory accesses. As a result, loads should
happen in the correct order without barrier instructions.
Tested on CN5020, CN6120, CN7130 and CN7360.
This diff has been in use on the octeon-based mips64 bulk build cluster
for several months. Also tested in snaps for a while.
|
|
This diff exposes parts of clock_gettime(2) and gettimeofday(2) to
userland via libc eliberating processes from the need for a context
switch everytime they want to count the passage of time.
If a timecounter clock can be exposed to userland than it needs to set
its tc_user member to a non-zero value. Tested with one or multiple
counters per architecture.
The timing data is shared through a pointer found in the new ELF
auxiliary vector AUX_openbsd_timekeep containing timehands information
that is frequently updated by the kernel.
Timing differences between the last kernel update and the current time
are adjusted in userland by the tc_get_timecount() function inside the
MD usertc.c file.
This permits a much more responsive environment, quite visible in
browsers, office programs and gaming (apparently one is are able to fly
in Minecraft now).
Tested by robert@, sthen@, naddy@, kmos@, phessler@, and many others!
OK from at least kettenis@, cheloha@, naddy@, sthen@
|
|
functionality is provided by <sys/stdarg.h> using compiler builtins.
Tested in a ports bulk build on amd64 by naddy@
OK naddy@ mpi@
|
|
|
|
Nothing uses the header anymore.
OK deraadt@ mpi@
|
|
Load the kernel image from the filesystem upfront in rdboot and pass
the loaded image to octboot(4)'s kexec call in a memory buffer. As a
result, octboot(4) does not rely on a mounted filesystem.
OK deraadt@
|
|
bus_space_read_region_n, bus_space_write_region_n and
bus_space_set_region_n functions were all broken.
Same fix as arm64; Thanks to patrick@ for noting that mips64 had the same
code.
ok visa@
|
|
|
|
|
|
|
|
of soft interrupts are lower than priorities of hard interrupts.
This allows the delivery of hard interrupts while soft interrupts
are masked.
|
|
The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.
The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.
The bootloader will be enabled later when it is ready for general use.
Discussed with deraadt@
|
|
removed already in process_bootargs(). Pass the value as a parameter
to parse_uboot_root(). Set uboot_rootdev only if parsing succeeds.
|
|
|
|
intr_barrier(9).
With this change, the barrier should finally work properly with
cnmac(4) interrupts that have been assigned to secondary cores.
|
|
This makes `ncpusfound' independent of kernel boot parameters.
The kernel still needs the help of the firmware to spin up secondary
CPUs, so the `coremask' or `numcores' boot parameter is still needed
for multicore operation.
Tested on CN5020, CN6120, CN7130 and CN7360.
|
|
|
|
OK deraadt@ mpi@
|
|
so that we can include firmware-dependant code in generic drivers to be
able to extract metadata information like MAC addresses and out-of-band
interrupts from the ACPI/FDT tables.
ok kettenis@
|
|
arm_intr_* prefix with fdt_intr_*.
ok kettenis@
|
|
|
|
From jj@
|
|
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):
AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512
Please note that the driver is currently disabled.
OK deraadt@
|
|
|
|
required by upcoming MI mutex change.
|
|
the value matches with the number of cores that GENERIC.MP uses.
OK deraadt@, krw@, pirofti@
|
|
OK dlg@
|
|
Not tested with the hardware.
|
|
Prompted by Justin Hibbits
|
|
From Justin Hibbits, thanks!
|
|
For now, the kernel does enforce one-to-one mapping between logical
cpuids and hardware coreids, but the reliance on that should be
removed eventually.
|
|
the interrupt processing of each work group to one of the available
CPUs. This enables some parallelism in the early stages of packet Rx.
|
|
|
|
the correct address space for direct referencing. Previous code has
worked because the address conversion has only set bits that are
already on.
|
|
OK guenther@
|
|
|
|
|
|
|
|
|
|
|
|
OK kettenis@
|