summaryrefslogtreecommitdiff
path: root/sys/arch
AgeCommit message (Collapse)Author
2018-04-20enable ccp(4) as found on recent amd chipsDavid Gwynne
2018-04-20enable ccp(4) as found on amd seattle platforms, eg, overdrive 1000sDavid Gwynne
ok kettenis@ jmatthew@
2018-04-18crank versionTheo de Raadt
2018-04-18re-enable ucode loading. The problem is the standard memory allocatorTheo de Raadt
cannot handle the larger firmwares, so we must place them somewhere else where the kernel can read them. Let's use 1MB. And pay attention if someone gets burned by this decision. Other solutions get a lot more hairy ok mlarkin jsing
2018-04-18Stop modifying vm page flags using mixed atomic and non-atomicPatrick Wildt
operations. This resolves one of the failures frequently seen on QEMU where spawning processes while another process is working can lead to crashes. Committing on behalf of drahn@ ok kettenis@ jsg@
2018-04-18Introduce a pmap lock on pmap_fault_fixup(). Heavily threadedPatrick Wildt
applications will crash without this lock as other threads attempt to walk the tree while another thread is adding/removing mappings. Committing on behalf of drahn@ ok kettenis@
2018-04-18vmm: Fix interrupt window exiting for AMD / SVMpd
* define V_IGN_TPR (ignore virtual TPR) * set V_IGN_TPR while configuring window exiting (was missed in one location along with setting of the intr vector) This should fix unresponsive network / console issues with guests on SVM.
2018-04-17- Make rnd hints avoid the brk area. The rnd allocator refuses to allocate inOtto Moerbeek
the brk area anyway. - Use a larger hint bound to spread the allocations more for the 32-bit case - Simplified the overy abstracted brs/stack allocator and switch of guard pages for the brk case. This allows i386 some extra space, depending on memory usage patterns. - Reduce brk area on i386 to give the rnd space more room ok stefan@ sthen@
2018-04-17Better way of allocating EPT entries.Mike Larkin
Don't use the standard pmap PTE functions to manipulate EPT PTEs. This occasionally caused VMs to fail after random amounts of time due to loading the pmap on the CPU and the processor updating A/D bits (which are reserved bits in EPT). This ultimately manifested itself as errors from vmd ("vcpu X run ioctl failed".) tested by many, on different types of HW, no regressions noted
2018-04-15Disable microcode loading added in r1.20 of exec_i386.c.Joel Sing
The implementation tries to allocate sufficient memory to match the size of the microcode file and will blow the boot loader heap when loading a larger microcode file. This has been causing "heap full" errors at boot on some machines. Diagnosed with deraadt@
2018-04-14account for the meltdown pdir page in pmap statsMike Larkin
ok deraadt, kettenis
2018-04-12Implement MAP_STACK option for mmap(). Synchronous faults (pagefault andTheo de Raadt
syscall) confirm the stack register points at MAP_STACK memory, otherwise SIGSEGV is delivered. sigaltstack() and pthread_attr_setstack() are modified to create a MAP_STACK sub-region which satisfies alignment requirements. Observe that MAP_STACK can only be set/cleared by mmap(), which zeroes the contents of the region -- there is no mprotect() equivalent operation, so there is no MAP_STACK-adding gadget. This opportunistic software-emulation of a stack protection bit makes stack-pivot operations during ROPchain fragile (kind of like removing a tool from the toolbox). original discussion with tedu, uvm work by stefan, testing by mortimer ok kettenis
2018-04-11More steps for i386 Meltdown fix:Alexander Bluhm
- provide struct cpu_info_full - prepare K-U sections - reorganize interrupt, trap, syscall entry to use K-U trampoline - prepare pmap for entering special mappings, the mappings are not setup yet This code will already trigger performance issues. We do more tlb flushes, but we do not unmap the kernel yet. The latter will be needed to prevent Meltdown. from hshoexer@; input guenther@; OK mlarkin@ deraadt@
2018-04-09Set trapframe pointer early on in do_el0_sync. This allows the use ofMark Kettenis
PROC_STACK() in the upcoming stack pointer checking diff and probably fixes bugs where ptrace(2) and core dumps would report the wrong register state. ok deraadt@
2018-04-09Get rid of some FreeBSD leftovers (that are mostly commented out already).Mark Kettenis
2018-04-09The Open Firmware Interrupt Mapping "recommendation" says that the numberMark 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@
2018-04-09Add a driver for the OCTEON cryptographic unit. It providesVisa Hankala
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@
2018-04-09Move some AES-related defines into xform.h to reduce duplication.Visa Hankala
gmac.c is left untouched for now to preserve layering. OK mikeb@, deraadt@
2018-04-09Fill in FRAME_PS after the fact. What a ridiculous design decision.Theo de Raadt
It would be better if this was filled in at trap time. ok guenther
2018-04-08Remove debugging printfMike Belopuhov
ok deraadt, guenther
2018-04-08Add support for the EFI Random Number Generator Protocol and use it to XORMark Kettenis
random data into the buffer that we feed the kernel. ok deraadt@
2018-04-07Enable islrtc(4).Mark Kettenis
2018-04-06Sadly some UEFI frimware writes to mappings marked as runtime code so we can'tMark Kettenis
enforce W^X for runtime services. Do respect the bits that indicate that mappings can be non-readable, non-executable or read-only though. ok patrick@
2018-04-03remove a 15-year old #if 0Mike Larkin
2018-04-02Enable mvrng(4).Mark Kettenis
2018-04-02Enable imxiomuxc(4).Patrick Wildt
2018-04-02Move imxiomuxc(4) to sys/dev/fdt.Patrick Wildt
2018-04-02Move the code that sets the correct SATA phy settings into imxahc(4)Patrick Wildt
by making use of the iomuxc regmap. While there I realized that the naming definitions for the first two bits of the register are wrong. Thus, update the mask to include all lower bits and rename bit 1 to denote "MPLL enable". This should be flipped last to turn it on. ok kettenis@
2018-04-02Enable fec(4).Patrick Wildt
2018-04-02Move fec(4) to sys/dev/fdt.Patrick Wildt
2018-04-02Enable imxccm(4).Patrick Wildt
2018-04-02Move imxccm(4) to sys/dev/fdt.Patrick Wildt
2018-04-02Have fec(4) make use of the clock framework by implementing the enetPatrick Wildt
ref clock in imxccm(4). We can now also remove the global variable that stored the pointer to the imxccm(4) softc.
2018-04-02No need to include imxccmvar.h anymore.Patrick Wildt
2018-04-02Have imxahci(4) make use of the clock framework by implementing the sataPatrick Wildt
and sata ref clock in imxccm(4).
2018-04-02Have imxehci(4) make use of the clock framework by implementing the phyPatrick Wildt
clock in imxccm(4). ok kettenis@
2018-04-02Enable dwpcie(4).Mark Kettenis
2018-04-02Do not add 32 to the "base" SPI number. Apparently the offset of the firstMark Kettenis
SPI is already included and adding 32 means we skip the first 32 available MSI vectors, which is quite disastous if we only have 32 vectors like on the Marvell Armada 8040. ok patrick@
2018-04-02Pay attention to the "reg-io-width" and "reg-shift" properties and avoidMark Kettenis
using the "a4x" bus tag for the non-console code in the fdt glue. ok patrick@
2018-04-02Remove I2C iomux descriptions from the time before we set those upPatrick Wildt
using the device tree.
2018-04-01Pull out the regmap lookup from the switch. This way we can stillPatrick Wildt
enable the PLL even if the (optional) "fsl,anatop" property is not available or if the regmap cannot be found. Suggested by kettenis@
2018-04-01Disable the USB charging detection using a regmap instead of cross-Patrick Wildt
calling imxccm using a special function. ok kettenis@
2018-04-01Enable imxanatop(4) on RAMDISK as well so we can use it to disablePatrick Wildt
the USB charging detect so that we can replace the current code in imxccm(4).
2018-04-01Stop using a global softc variable in most functions that are calledPatrick Wildt
from the clock framework, and instead always pass the driver's softc as function parameter.
2018-04-01Retrieve AHB clock from clock framework.Patrick Wildt
2018-04-01Remove unfinished PCIe support from imxccm(4). We can do better thanPatrick Wildt
that when we tackle it again.
2018-04-01In an attempt to OFW-ify fec(4) it turns out that the MII speedPatrick Wildt
has currently not been set correctly. The phy speed is based on IPG clock, not the Ethernet PLL divisor. Also when we bumped the frequency base from kHz to Hz, we missed to update the divisor as well. Clarify the formula being used to calculate the phy speed and make use of the clock framework. ok kettenis@
2018-03-31Change ci_dev.dv_xname to ci_dev->dv_xname in debugging printf()Alexander Bluhm
to make it compile when enabled. from hshoexer@
2018-03-31Port arm64's network boot efforts to armv7 as well now that there isPatrick Wildt
support for using U-Boot's network layer. Since arm64 and armv7's efiboot(8) have the same heritance the diffs from arm64 simply applied to armv7.
2018-03-31Add CVS Ids.Patrick Wildt