#
da76d349 |
|
03-May-2024 |
Bojan Novković <bnovkov@FreeBSD.org> |
uma: Deduplicate uma_small_alloc This commit refactors the UMA small alloc code and removes most UMA machine-dependent code. The existing machine-dependent uma_small_alloc code is almost identical across all architectures, except for powerpc where using the direct map addresses involved extra steps in some cases. The MI/MD split was replaced by a default uma_small_alloc implementation that can be overridden by architecture-specific code by defining the UMA_MD_SMALL_ALLOC symbol. Furthermore, UMA_USE_DMAP was introduced to replace most UMA_MD_SMALL_ALLOC uses. Reviewed by: markj, kib Approved by: markj (mentor) Differential Revision: https://reviews.freebsd.org/D45084
|
#
c2e9c5bb |
|
13-Nov-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
tpm: Refactor TIS and add a SPI attachment Summary: Though mostly used in x86 devices, TPM can be used on others, with a direct SPI attachment. Refactor the TPM 2.0 driver set to use an attachment interface, and implement a SPI bus interface. Test Plan: Tested on a Raspberry Pi 4, with a GeeekPi TPM2.0 module (SLB9670 TPM) using security/tpm2-tools tpm2_getcaps for very light testing against the spibus attachment. Reviewed by: kd Obtained from: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D45069
|
#
b9c6fa33 |
|
12-Apr-2024 |
John Baldwin <jhb@FreeBSD.org> |
files.x86: Pull in some more duplicate lines from files.{amd64,i386} Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D44759
|
#
76832996 |
|
12-Feb-2024 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update package to 1.3.36.0 This is intended to be used with the upcoming ice 1.39.13-k driver update, but is still backwards compatible with previous versions of the driver. Signed-off-by: Eric Joyner <erj@FreeBSD.org> MFC after: 3 days Sponsored by: Intel Corporation
|
#
f48cd806 |
|
13-Feb-2024 |
Mark Johnston <markj@FreeBSD.org> |
build: Do not run ctfconvert on VDSO files Reviewed by: emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D43877
|
#
8e1a7e29 |
|
10-Oct-2023 |
Mark Johnston <markj@FreeBSD.org> |
sanitizers: Avoid building genassym.c and genoffset.c with sanitizers Some, particularly KASAN, may insert redzones around global symbols, resulting in incorrect offset definitions because genassym.sh (ab)uses symbol sizes to assign semantic meaning. (Ideally I would be able to define this pattern in one place, but I haven't found a way to define a GENSYM_CFLAGS that actually works for all of the consumers (kern.post.mk, kmod.mk, sys/conf/files*).) MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: Juniper Networks, Inc.
|
#
c6ae97c4 |
|
26-Dec-2023 |
Alex Xu (Hello71) <alex_y_xu@yahoo.ca> |
sys: ${CFLAGS:N-flto} -> ${CFLAGS:N-flto*} For the same reason as the original https://reviews.freebsd.org/D9659: -flto=<N>, -flto=full, and -flto=thin also produce the GIMPLE/bitcode which is not supported by genassym, so filter those out as well. Signed-off-by: Alex Xu (Hello71) <alex_y_xu@yahoo.ca> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/898
|
#
e04c4b4a |
|
21-Aug-2023 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update to 1.3.35.0 This is intended to be used with the upcoming updated ice(4) version 1.38.16-k. Signed-off-by: Eric Joyner <erj@FreeBSD.org> MFC after: 3 days Sponsored by: Intel Corporation
|
#
7ea28254 |
|
24-Aug-2023 |
John Hall <john.hall@microchip.com> |
smartpqi: update to version 4410.0.2005 This updates the smartpqi driver to Microsemi's latest code. This will be the driver for FreeBSD 14 (with updates), but no MFC is planned. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D41550
|
#
031beb4e |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line sh pattern Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
#
350b7c35 |
|
01-Jul-2023 |
Stéphane Rochoy <stephane.rochoy@stormshield.eu> |
superio+ncthwm: Add hardware monitoring support Add support for the following chips: - Nuvoton NCT6779D - Nuvoton NCT6796D-E Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/719
|
#
e4017d9b |
|
01-Jul-2023 |
Mark O'Donovan <shiftee@posteo.net> |
qlnxe: Fix building as in-kernel component Add some extra files for building the driver as part of the kernel. Change some #defines to match those used when building as a module. PR: 268354 Signed-off-by: Mark O'Donovan <shiftee@posteo.net> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/779
|
#
556b4349 |
|
02-Jun-2023 |
Mark Johnston <markj@FreeBSD.org> |
ossl: Compile newly added files into the kernel if so requested Fixes: 9a3444d91c70 ("ossl: Add a VAES-based AES-GCM implementation for amd64") Fixes: 9b1d87286c78 ("ossl: Add a fallback AES-GCM implementation using AES-NI")
|
#
2a58b312 |
|
03-Apr-2023 |
Martin Matuska <mm@FreeBSD.org> |
zfs: merge openzfs/zfs@431083f75 Notable upstream pull request merges: #12194 Fix short-lived txg caused by autotrim #13368 ZFS_IOC_COUNT_FILLED does unnecessary txg_wait_synced() #13392 Implementation of block cloning for ZFS #13741 SHA2 reworking and API for iterating over multiple implementations #14282 Sync thread should avoid holding the spa config write lock when possible #14283 txg_sync should handle write errors in ZIL #14359 More adaptive ARC eviction #14469 Fix NULL pointer dereference in zio_ready() #14479 zfs redact fails when dnodesize=auto #14496 improve error message of zfs redact #14500 Skip memory allocation when compressing holes #14501 FreeBSD: don't verify recycled vnode for zfs control directory #14502 partially revert PR 14304 (eee9362a7) #14509 Fix per-jail zfs.mount_snapshot setting #14514 Fix data race between zil_commit() and zil_suspend() #14516 System-wide speculative prefetch limit #14517 Use rw_tryupgrade() in dmu_bonus_hold_by_dnode() #14519 Do not hold spa_config in ZIL while blocked on IO #14523 Move dmu_buf_rele() after dsl_dataset_sync_done() #14524 Ignore too large stack in case of dsl_deadlist_merge #14526 Use .section .rodata instead of .rodata on FreeBSD #14528 ICP: AES-GCM: Refactor gcm_clear_ctx() #14529 ICP: AES-GCM: Unify gcm_init_ctx() and gmac_init_ctx() #14532 Handle unexpected errors in zil_lwb_commit() without ASSERT() #14544 icp: Prevent compilers from optimizing away memset() in gcm_clear_ctx() #14546 Revert zfeature_active() to static #14556 Remove bad kmem_free() oversight from previous zfsdev_state_list patch #14563 Optimize the is_l2cacheable functions #14565 FreeBSD: zfs_znode_alloc: lock the vnode earlier #14566 FreeBSD: fix false assert in cache_vop_rmdir when replaying ZIL #14567 spl: Add cmn_err_once() to log a message only on the first call #14568 Fix incremental receive silently failing for recursive sends #14569 Restore ASMABI and other Unify work #14576 Fix detection of IBM Power8 machines (ISA 2.07) #14577 Better handling for future crypto parameters #14600 zcommon: Refactor FPU state handling in fletcher4 #14603 Fix prefetching of indirect blocks while destroying #14633 Fixes in persistent error log #14639 FreeBSD: Remove extra arc_reduce_target_size() call #14641 Additional limits on hole reporting #14649 Drop lying to the compiler in the fletcher4 code #14652 panic loop when removing slog device #14653 Update vdev state for spare vdev #14655 Fix cloning into already dirty dbufs #14678 Revert "Do not hold spa_config in ZIL while blocked on IO" Obtained from: OpenZFS OpenZFS commit: 431083f75bdd3efaee992bdd672625ec7240d252
|
#
1b10e191 |
|
28-Feb-2023 |
Stéphane Rochoy <stephane.rochoy@stormshield.eu> |
superio,ftgpio: Add support for Fintek F81865 GPIO Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/674 Differential Revision: https://reviews.freebsd.org/D37893 |
#
8923de59 |
|
13-Feb-2023 |
Piotr Kubaj <pkubaj@FreeBSD.org> |
ice(4): Update to 1.37.7-k Notable changes include: - DSCP QoS Support (leveraging support added in rG9c950139051298831ce19d01ea5fb33ec6ea7f89) - Improved PFC handling and TC queue assignments (now all remaining queues are assigned to TC 0 when more than one TC is enabled and the number of available queues does not evenly divide between them) - Support for dumping the internal FW state for additional debugging by Intel support - Support for allowing "No FEC" to be a valid state for the LESM to negotiate when using non-standard compliant modules Also includes various bug fixes and smaller enhancements, too. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: erj@ Tested by: Jeff Pieper <jeffrey.pieper@intel.com> MFC after: 3 days Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D38109 |
#
5bb807fe |
|
05-Feb-2023 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: record a dependency of vdso on its linker script Reviewed by: emaste, val_packett.cool Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D38392 |
#
9c067b84 |
|
27-Jan-2023 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
enic: Cisco VIC driver This driver is based of the enic (Cisco VIC) DPDK driver. It provides basic ethernet functionality. Has been run with various VIC cards to do UEFI PXE boot with NFS root. |
#
2508da22 |
|
24-Jan-2023 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update package to 1.3.30.0 This updated DDP is intended to be used with the forthcoming ice(4) driver update to 1.37.7-k. (But it will still work with the current version.) Co-authored-by: Piotr Kubaj <pkubaj@FreeBSD.org> Signed-off-by: Eric Joyner <erj@FreeBSD.org> MFC after: 1 week Sponsored by: Intel Corporation |
#
99aeb219 |
|
03-Jan-2023 |
Takanori Watanabe <takawata@FreeBSD.org> |
wdatwd: Add support for ACPI WDAT based watchdog timer. Simply said, WDAT is an abstraction for the real WDT hardware. For instance, to add a newer generation WDT to ichwd(4), one must know the detailed hardware registers, etc.. With WDAT, the necessary IO accesses to operate the WDT are comprehensively described in it and no hardware knowledge is required. With this driver, the WDT on Advantech ARK-1124C, Dell R210 and Dell R240 are detected and operated flawlessly. * While R210 is also supported by ichwd(4), others are not supported yet. The unfortunate thing is that not all systems have WDAT defined. Submitted by: t_uemura at macome.co.jp Reviewed by: hrs Differential Revision: https://reviews.freebsd.org/D37493 |
#
d1aefbc0 |
|
23-Jun-2022 |
Martin Matuska <mm@FreeBSD.org> |
zfs: fix static module build broken in 1f1e2261e |
#
8a13362d |
|
01-Dec-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Add RDMA Client Interface This allows the "irdma" driver to communicate with the ice(4) driver to allow it access to the underlying device's hardware resources as well as synchronize access to shared resources. This interface already existed in the standalone out-of-tree 1.34.2 driver; this commit adds and enables it in the in-kernel driver. Note: Adds hack to module Makefile to compile interface/.m files These are required for the RDMA client interface, but they don't build as-is like the normal .c files. The source directory doesn't seem to be included by default, so add lines that specifically add them as libraries so that ice_rdma.h can be found and the interface files will compile. Signed-off-by: Eric Joyner <erj@FreeBSD.org> MFC after: 1 week Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D30889 |
#
56429dae |
|
04-Mar-2022 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Update to 1.34.2-k - Adds FW logging support - Once enabled, this lets the firmware print event and error messages to the log, increasing the visibility into what the hardware is doing; this is useful for debugging - General bug fixes - Adds inital DCB support to the driver - Notably, this adds support for DCBX to the driver; now with the fw_lldp sysctl set to 1, the driver and adapter will adopt a DCBX configuration sent from a link partner - Adds statistcs sysctls for priority flow control frames - Adds new configuration sysctls for DCB-related features: (VLAN) user priority to TC mapping; ETS bandwidth allocation; priority flow control - Remove unused SR-IOV files (until support gets added) Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: jeffrey.e.pieper@intel.com MFC after: 3 days MFC with: 213e91399b, e438f0a975 Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D34024 |
#
e438f0a9 |
|
01-Dec-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update to 1.3.27.0 This is intended to be used with forthcoming ice(4) driver version 1.34.2. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation |
#
c2705cea |
|
09-Jan-2022 |
Colin Percival <cperciva@FreeBSD.org> |
x86: Speed up clock calibration Prior to this commit, the TSC and local APIC frequencies were calibrated at boot time by measuring the clocks before and after a one-second sleep. This was simple and effective, but had the disadvantage of *requiring a one-second sleep*. Rather than making two clock measurements (before and after sleeping) we now perform many measurements; and rather than simply subtracting the starting count from the ending count, we calculate a best-fit regression between the target clock and the reference clock (for which the current best available timecounter is used). While we do this, we keep track of an estimate of the uncertainty in the regression slope (aka. the ratio of clock speeds), and stop measuring when we believe the uncertainty is less than 1 PPM. In order to avoid the risk of aliasing resulting from the data-gathering loop synchronizing with (a multiple of) the frequency of the reference clock, we add some additional spinning depending upon the iteration number. For numerical stability and simplicity of implementation, we make use of floating-point arithmetic for the statistical calculations. On the author's Dell laptop, this reduces the time spent in calibration from 2000 ms to 29 ms; on an EC2 c5.xlarge instance, it is reduced from 2000 ms to 2.5 ms. Reviewed by: bde (previous version), kib MFC after: 1 month Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D33802 |
#
169b368a |
|
06-Dec-2021 |
Jessica Clarke <jrtc27@FreeBSD.org> |
amd64: Pass DEBUG when building VDSO wrapper Not doing so results in ctfconvert failing with ERROR: ctfconvert: elf-vdso.so.o doesn't have type data to convert On FreeBSD this is non-fatal, since the ctf tools have a hack to make such errors not fail the build and instead just silently continue without CTF data (which is a bad idea these days and should probably be removed; they date back to the original import). However, those are under #ifdef __FreeBSD__ so do not apply when cross-building from non-FreeBSD, causing the build to fail. Fix this by forwarding DEBUG on to the compiler invocation for the VDSO wrapper. It's assembly so it's not hugely useful, but there is a non-zero amount of information preserved, and other assembly files are built with -g by default too so this matches them; the alternative would be to tag the files.amd64 entries with no-ctfmerge. Note that the VDSO itself is still compiled without debug info, this only affects the wrapper linked into the kernel. Fixes: 98c8b6252496 ("vdso for ia32 on amd64"), ab4524b3d7fb ("amd64: wrap 64bit sigtramp into vdso") MFC after: 1 month |
#
d49b75d0 |
|
30-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Enforce that vdso does not contain runtime relocations Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D32960 |
#
98c8b625 |
|
13-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
vdso for ia32 on amd64 Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D32960 |
#
ab4524b3 |
|
05-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: wrap 64bit sigtramp into vdso Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D32960 |
#
ca853dee |
|
12-Feb-2021 |
Eric Joyner <erj@FreeBSD.org> |
iavf(4): Split source and update to 3.0.26-k The iavf(4) driver now uses a different source base from ixl(4), since it will be the standard VF driver for new Intel Ethernet products going forward, including ice(4). It continues to use the iflib framework for network drivers. Since it now uses a different source code base, this commit adds a new sys/dev/iavf entry, but it re-uses the existing module name so no configuration changes are necessary. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: kbowling@ Tested by: lukasz.szczepaniak@intel.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D28636 |
#
ecbbe831 |
|
24-Nov-2021 |
Mark Johnston <markj@FreeBSD.org> |
netinet: Deduplicate most in_cksum() implementations in_cksum() and related routines are implemented separately for each platform, but only i386 and arm have optimized versions. Other platforms' copies of in_cksum.c are identical except for style differences and support for big-endian CPUs. Deduplicate the implementations for the rest of the platforms. This will make it easier to implement in_cksum() for unmapped mbufs. On arm and i386, define HAVE_MD_IN_CKSUM to mean that the MI implementation is not to be compiled. No functional change intended. Reviewed by: kp, glebius MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33095 |
#
197ff4c3 |
|
01-Nov-2021 |
Kornel Duleba <mindal@semihalf.com> |
ossl: Add support for AES-CBC cipher AES-CBC OpenSSL assembly is used underneath. The glue layer(ossl_aes.c) is based on CHACHA20 implementation. Contrary to the SHA and CHACHA20, AES OpenSSL assembly logic does not have a fallback implementation in case CPU doesn't support required instructions. Because of that CPU caps are checked during initialization and AES support is advertised only if available. The feature is available on all architectures that ossl supports: i386, amd64, arm64. The biggest advantage of this patch over existing solutions (aesni(4) and armv8crypto(4)) is that it supports SHA, allowing for ETA operations. Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: jhb (previous version) Differential revision: https://reviews.freebsd.org/D32099 |
#
200bc589 |
|
06-Nov-2021 |
Wojciech Macek <wma@FreeBSD.org> |
Revert "ossl: Add support for AES-CBC cipher" This reverts commit 849faf4e0ba9a8b8f24ff34da93a0fd46c14eda9. |
#
849faf4e |
|
01-Nov-2021 |
Kornel Duleba <mindal@semihalf.com> |
ossl: Add support for AES-CBC cipher AES-CBC OpenSSL assembly is used underneath. The glue layer(ossl_aes.c) is based on CHACHA20 implementation. Contrary to the SHA and CHACHA20, AES OpenSSL assembly logic does not have a fallback implementation in case CPU doesn't support required instructions. Because of that CPU caps are checked during initialization and AES support is advertised only if available. The feature is available on all architectures that ossl supports: i386, amd64, arm64. The biggest advantage of this patch over existing solutions (aesni(4) and armv8crypto(4)) is that it supports SHA, allowing for ETA operations. Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: jhb Differential revision: https://reviews.freebsd.org/D32099 |
#
cf0ee873 |
|
12-Sep-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Drop cloudabi According to https://github.com/NuxiNL/cloudlibc: CloudABI is no longer being maintained. It was an awesome experiment, but it never got enough traction to be sustainable. There is no reason to keep it in FreeBSD. Approved by: ed (private mail) Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D31923 |
#
12ca33f4 |
|
13-Sep-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: move signal handling and register structures manipulations into exec_machdep.c from machdep.c which is too large pile of unrelated things. Some ptrace functions are moved from machdep.c to ptrace_machdep.c. Now machdep.c contains code mostly related to the low level initialization and regular low level operation of the architecture, while signal MD code and registers handling is placed in exec_machdep.c. Reviewed by: jhb, markj Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31954 |
#
2b6eec53 |
|
12-Sep-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
x86: duplicate acpi_wakeup.c per i386 and amd64 The file as is is the maze of #ifdef passages, all slightly different. Divorcing i386 and amd64 version actually makes changing the code easier, also no changes for i386 are planned. Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31931 |
#
7af4475a |
|
02-Sep-2021 |
Alexander Motin <mav@FreeBSD.org> |
vmd(4): Major driver refactoring - Re-implement pcib interface to use standard pci bus driver on top of vmd(4) instead of custom one. - Re-implement memory/bus resource allocation to properly handle even complicated configurations. - Re-implement interrupt handling to evenly distribute children's MSI/ MSI-X interrupts between available vmd(4) MSI-X vectors and setup them to be handled by standard OS mechanisms with minimal overhead, except sharing when unavoidable. Successfully tested on Dell XPS 13 laptop with Core i7-1185G7 CPU (VMD device ID 0x9a0b) and single NVMe SSD, dual-booting with Windows 10. Successfully tested on Supermicro X11DPI-NT motherboard with Xeon(R) Gold 6242R CPUs (VMD device ID 0x201d), simultaneously handling NVMe SSD on one PCIe port and PLX bridge with 3 NVMe and 1 AHCI SSDs on another. Handles SSD hot-plug (except Optane 905p for some reason, which are not detected until manual bus rescan) and enabled IOMMU (directly connected SSDs work, but ones connected to the PLX fail without errors from IOMMU). MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential revision: https://reviews.freebsd.org/D31762 |
#
3706af42 |
|
29-Jun-2021 |
Arnaud Ysmal <arnaud.ysmal@stormshield.eu> |
Add support for Lewisburg GPIO through P2SB Obtained from: Semihalf Sponsored by: Stormshield Differential revision: https://reviews.freebsd.org/D31269 |
#
469884cf |
|
31-Jul-2021 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
LinuxKPI: Make FPU sections thread-safe and use the NOCTX flag. Reviewed by: kib Submitted by: greg@unrelenting.technology Differential Revision: https://reviews.freebsd.org/D29921 MFC after: 1 week Sponsored by: NVIDIA Networking |
#
538ef055 |
|
25-Jun-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update to 1.3.24.0 This version is intended to be used with the 0.29.4 version of the ice(4) driver, which will be be committed afterwards. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: stallamr_netapp.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D30887 |
#
e013e369 |
|
21-Jun-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Get rid of Linuxulator kernel build options. Stop confusing people, retire COMPAT_LINUX and COMPAT_LINUX32 kernel build options. Since we have 32 and 64 bit Linux emulators, we can't build both emulators together into the kernel. I don't think it matters, Linux emulation depends on loadable modules (via rc). Cut LINPROCFS and LINSYSFS for consistency. PR: 215061 Reviewed by: bcr (manpages), trasz Differential Revision: https://reviews.freebsd.org/D30751 MFC after: 2 weeks |
#
ac3ede53 |
|
11-May-2021 |
Roger Pau Monné <royger@FreeBSD.org> |
x86/xen: remove PVHv1 code PVHv1 was officially removed from Xen in 4.9, so just axe the related code from FreeBSD. Note FreeBSD supports PVHv2, which is the replacement for PVHv1. Sponsored by: Citrix Systems R&D Reviewed by: kib, Elliott Mitchell Differential Revision: https://reviews.freebsd.org/D30228 |
#
aa3ea612 |
|
31-Mar-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
x86: remove gcov kernel support Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D29529 |
#
d08b8680 |
|
22-Feb-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Update to version 0.28.1-k This updates the driver to align with the version included in the "Intel Ethernet Adapter Complete Driver Pack", version 25.6. There are no major functional changes; this mostly contains bug fixes and changes to prepare for new features. This version of the driver uses the previously committed ice_ddp package 1.3.19.0. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: jeffrey.e.pieper@intel.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D28640 |
#
92aecd1e |
|
03-Mar-2021 |
John Baldwin <jhb@FreeBSD.org> |
ossl: Add ChaCha20 cipher support. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D28756 |
#
a079e38b |
|
03-Mar-2021 |
John Baldwin <jhb@FreeBSD.org> |
ossl: Add Poly1305 digest support. Reviewed by: cem Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D28754 |
#
a7ac518b |
|
22-Feb-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update package file to 1.3.19.0 This package is intended to be used with ice(4) version 0.28.1-k. That update will happen in a forthcoming commit. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation |
#
5fa12fe0 |
|
20-Feb-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: implement strlen in assembly, take 2 Tested with glibc test suite. The C variant in libkern performs excessive branching to find the zero byte instead of using the bsfq instruction. The same code patched to use it is still slower than the routine implemented here as the compiler keeps neglecting to perform certain optimizations (like using leaq). On top of that the routine can be used as a starting point for copyinstr which operates on words intead of bytes. The previous attempt had an instance of swapped operands to andq when dealing with fully aligned case, which had a side effect of breaking the code for certain corner cases. Noted by jrtc27. Sample results: $(perl -e "print 'A' x 3"): stock: 211198039 patched:338626619 asm: 465609618 $(perl -e "print 'A' x 100"): stock: 83151997 patched: 98285919 asm: 120719888 Reviewed by: jhb, kib Differential Revision: https://reviews.freebsd.org/D28779 |
#
b49a0db6 |
|
09-Feb-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
Revert "amd64: implement strlen in assembly" This reverts commit af366d353b84bdc4e730f0fc563853abc338271c. Trips over '\xa4' byte and terminates early, as found in lib/libc/gen/setdomainname_test:setdomainname_basic testcase However, keep moving libkern/strlen.c out of conf/files. Reported by: lwhsu |
#
bfc99943 |
|
25-Jan-2021 |
Brooks Davis <brooks@one-eyed-alien.net> |
ndis(4): remove as previous announced nids(4) was a clever idea in the early 2000's when the market was flooded with 10/100 NICs with Windows-only drivers, but that hasn't been the case for ages and the driver has had no meaningful maintenance in ages. It only supports Windows-XP era drivers. Also remove: - ndis support from wpa_supplicant - ndiscvt(8) Reviewed By: emaste, bcr (manpages) Differential Revision: https://reviews.freebsd.org/D27609 |
#
94611a83 |
|
14-Jan-2021 |
Andrew Turner <andrew@FreeBSD.org> |
Add missing no-ctfconvert to C generation rules Stop running ctfconvert over generated C files in the kernel by marking them with no-ctfconvert. This fixes warnings from ctfconvert trying to parse C files: ctfconvert: file.c: Couldn't read ehdr: Invalid argument Reviewed by: emaste, mmel Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D28156 |
#
11d62b6f |
|
11-Jan-2021 |
Emmanuel Vadot <manu@FreeBSD.org> |
linuxkpi: add kernel_fpu_begin/kernel_fpu_end With newer AMD GPUs (>=Navi,Renoir) there is FPU context usage in the amdgpu driver. The `kernel_fpu_begin/end` implementations in drm did not even allow nested begin-end blocks. Submitted by: Greg V Reviewed By: manu, hselasky Differential Revision: https://reviews.freebsd.org/D28061 |
#
c4df8cbf |
|
23-Dec-2020 |
Robert Wing <rew@FreeBSD.org> |
Remove bvmconsole and bvmdebug. Now that bhyve(8) supports UART, bvmconsole and bvmdebug are no longer needed. This also removes the '-b' and '-g' flag from bhyve(8). These two flags were marked deprecated in r368519. Reviewed by: grehan, kevans Approved by: kevans (mentor) Differential Revision: https://reviews.freebsd.org/D27490 |
#
df4ca45c |
|
05-Dec-2020 |
Tijl Coosemans <tijl@FreeBSD.org> |
Fix i386 linux module after r367395. In r367395 parts of machine dependent linux_dummy.c were moved to a new machine independent file sys/compat/linux/linux_dummy.c and the existing linux_dummy.c was renamed to linux_dummy_machdep.c. Add linux_dummy_machdep.c to the linux module for i386. Rename sys/amd64/linux32/linux_dummy.c for consistency. Add the new linux_dummy.c to the linux module for i386. |
#
2e58ec01 |
|
18-Nov-2020 |
Mark Johnston <markj@FreeBSD.org> |
Move kern_clocksource.c to sys/conf/files Sponsored by: The FreeBSD Foundation |
#
e9b13c66 |
|
05-Nov-2020 |
Conrad Meyer <cem@FreeBSD.org> |
linux(4): Deduplicate unimpl/dummy syscall handlers No functional change. Reviewed by: emaste, trasz Differential Revision: https://reviews.freebsd.org/D27099 |
#
ba610be9 |
|
20-Oct-2020 |
John Baldwin <jhb@FreeBSD.org> |
Add a kernel crypto driver using assembly routines from OpenSSL. Currently, this supports SHA1 and SHA2-{224,256,384,512} both as plain hashes and in HMAC mode on both amd64 and i386. It uses the SHA intrinsics when present similar to aesni(4), but uses SSE/AVX instructions when they are not. Note that some files from OpenSSL that normally wrap the assembly routines have been adapted to export methods usable by 'struct auth_xform' as is used by existing software crypto routines. Reviewed by: gallatin, jkim, delphij, gnn Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D26821 |
#
acb4cf9d |
|
15-Oct-2020 |
Ed Maste <emaste@FreeBSD.org> |
move vmware pv drivers to sys/conf/files VMware now has arm64 support; move these to MI files in advance of building them on arm64. PR: 250308 Reported by: Vincent Milum Jr MFC after: 1 week Sponsored by: The FreeBSD Foundation |
#
7113afc8 |
|
11-Oct-2020 |
Emmanuel Vadot <manu@FreeBSD.org> |
10Gigabit Ethernet driver for AMD SoC This patch has the driver for 10Gigabit Ethernet controller in AMD SoC. This driver is written compatible to the Iflib framework. The existing driver is for the old version of hardware. The submitted driver here is for the recent versions of the hardware where the Ethernet controller is PCI-E based. Submitted by: Rajesh Kumar <rajesh1.kumar@amd.com> MFC after: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D25793 |
#
1bd641af |
|
04-Sep-2020 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update package file to 1.3.16.0 This package is intended to be used with ice(4) version 0.26.16. That update will happen in a forthcoming commit. MFC after: 3 days Sponsored by: Intel Corporation |
#
bd368728 |
|
30-Aug-2020 |
Marko Zec <zec@FreeBSD.org> |
Driver for 4x10Gb Ethernet reference NIC FPGA design for NetFPGA SUME development board. Submitted by: Denis Salopek <denis.salopek AT fer.hr> Reported by: zec, bz (src); rgrimes, bcr (manpages) MFC after: 7 days Sponsored by: Google Summer of Code 2020 Differential Revision: https://reviews.freebsd.org/D26074 |
#
9e5787d2 |
|
24-Aug-2020 |
Matt Macy <mmacy@FreeBSD.org> |
Merge OpenZFS support in to HEAD. The primary benefit is maintaining a completely shared code base with the community allowing FreeBSD to receive new features sooner and with less effort. I would advise against doing 'zpool upgrade' or creating indispensable pools using new features until this change has had a month+ to soak. Work on merging FreeBSD support in to what was at the time "ZFS on Linux" began in August 2018. I first publicly proposed transitioning FreeBSD to (new) OpenZFS on December 18th, 2018. FreeBSD support in OpenZFS was finally completed in December 2019. A CFT for downstreaming OpenZFS support in to FreeBSD was first issued on July 8th. All issues that were reported have been addressed or, for a couple of less critical matters there are pull requests in progress with OpenZFS. iXsystems has tested and dogfooded extensively internally. The TrueNAS 12 release is based on OpenZFS with some additional features that have not yet made it upstream. Improvements include: project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, various command line improvements, zstd compression. Thanks to those who have helped along the way: Ryan Moeller, Allan Jude, Zack Welch, and many others. Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D25872 |
#
b4a7ce06 |
|
09-Jun-2020 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Add FW recovery mode support and other things Update the iflib version of ixl driver based on the OOT version ixl-1.11.29. Major changes: - Extract iflib specific functions from ixl_pf_main.c to ixl_pf_iflib.c to simplify code sharing between legacy and iflib version of driver - Add support for most recent FW API version (1.10), which extends FW LLDP Agent control by user to X722 devices - Improve handling of device global reset - Add support for the FW recovery mode - Use virtchnl function to validate virtual channel messages instead of using separate checks - Fix MAC/VLAN filters accounting Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com> Reviewed by: erj@ Tested by: Jeffrey Pieper <jeffrey.e.pieper@intel.com> MFC after: 1 week Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D24564 |
#
71d10453 |
|
26-May-2020 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Introduce new driver for Intel E800 Ethernet controllers The ice(4) driver is the driver for the Intel E8xx series Ethernet controllers; currently with codenames Columbiaville and Columbia Park. These new controllers support 100G speeds, as well as introducing more queues, better virtualization support, and more offload capabilities. Future work will enable virtual functions (like in ixl(4)) and the other functionality outlined above. For full functionality, the kernel should be compiled with "device ice_ddp" like in the amd64 NOTES file, and/or ice_ddp_load="YES" should be added to /boot/loader.conf so that the DDP package file included in this commit can be downloaded to the adapter. Otherwise, the adapter will fall back to a single queue mode with limited functionality. A man page for this driver will be forthcoming. MFC after: 1 month Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D21959 |
#
0e00c709 |
|
11-May-2020 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for DES and Triple DES from OCF. It no longer has any in-kernel consumers via OCF. smbfs still uses single DES directly, so sys/crypto/des remains for that use case. Reviewed by: cem Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24773 |
#
32075647 |
|
11-May-2020 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for the Blowfish algorithm from OCF. It no longer has any in-kernel consumers. Reviewed by: cem Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24772 |
#
265cef40 |
|
28-Apr-2020 |
Bryan Drewery <bdrewery@FreeBSD.org> |
Don't try ctfconvert on file without debug info. This was currently an ignored error but will change to a hard error eventually. Differential Revision: https://reviews.freebsd.org/D24536 |
#
4db3ef4c |
|
17-Apr-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
More fixes to build the kernel with a compiler that defaults to -fno-common Using the same approach as the last commit for the files used by genassym.sh. Obtained from: CheriBSD |
#
f953e731 |
|
17-Apr-2020 |
Conrad Meyer <cem@FreeBSD.org> |
xen-locore: Silence DWARF2 section warning Silence the "DWARF2 can only represent one section per compilation unit" warning in amd64 GENERIC builds by disabling Clang's debuginfo generation for this assembler file (-g0). The message is replaced by a warning from ctfconvert that there is no debuginfo to convert (future work). The file contains some metadata (several ELF notes) and some code. The code does not appear to have anything that debuginfo would aid. I looked at the generated debuginfo (readelf -w xen-locore.o) prior to this change, and the metadata that would be disabled are things like associated between binary offset and code line number (not especially useful with a disassembler), and label metadata for the entry points (not especially useful as this is already in the symbol table). Reviewed by: royger Differential Revision: https://reviews.freebsd.org/D24384 |
#
bb9c7e26 |
|
02-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Move font.h generation to conf/files from conf/files.* Use ${SRCTOP} instead of /usr/share. Prefer to depend on option sc_dflt_fnt instead of sc. gc the 4 otherwise identical instances in the tree. Platforms that don't need this won't included it. |
#
e17b7f1a |
|
02-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Fix old-style build Fix the old-style build by using ${SRCTOP} instead of a weird construct that only works for new-style build. Simplify the building of keymap files by using macros Move atkbdmap.h in files.x86 This has been broken since r296899 which removed the implicit dependency on /usr/share. |
#
f6d5b31f |
|
01-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Revert r357349, since the clang 10.0.0 warning was actually correct, and the ! operator should have been a ~ instead: Merge r357348 from the clang 10.0.0 import branch: Disable new clang 10.0.0 warnings about converting the result of shift operations to a boolean in tpm(4): sys/dev/tpm/tpm_crb.c:301:32: error: converting the result of '<<' to a boolean; did you mean '(1 << (0)) != 0'? [-Werror,-Wint-in-bool-context] WR4(sc, TPM_CRB_CTRL_CANCEL, !TPM_CRB_CTRL_CANCEL_CMD); ^ sys/dev/tpm/tpm_crb.c:73:34: note: expanded from macro 'TPM_CRB_CTRL_CANCEL_CMD' #define TPM_CRB_CTRL_CANCEL_CMD BIT(0) ^ sys/dev/tpm/tpm20.h:60:19: note: expanded from macro 'BIT' #define BIT(x) (1 << (x)) ^ Such warnings can be useful in C++ contexts, but not so much in kernel drivers, where this type of bit twiddling is commonplace. So disable it for this case. Noticed by: cem MFC after: 3 days |
#
0a51af91 |
|
31-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Disable new clang 10.0.0 warnings about converting the result of shift operations to a boolean in tpm(4): sys/dev/tpm/tpm_crb.c:301:32: error: converting the result of '<<' to a boolean; did you mean '(1 << (0)) != 0'? [-Werror,-Wint-in-bool-context] WR4(sc, TPM_CRB_CTRL_CANCEL, !TPM_CRB_CTRL_CANCEL_CMD); ^ sys/dev/tpm/tpm_crb.c:73:34: note: expanded from macro 'TPM_CRB_CTRL_CANCEL_CMD' #define TPM_CRB_CTRL_CANCEL_CMD BIT(0) ^ sys/dev/tpm/tpm20.h:60:19: note: expanded from macro 'BIT' #define BIT(x) (1 << (x)) ^ Such warnings can be useful in C++ contexts, but not so much in kernel drivers, where this type of bit twiddling is commonplace. So disable it for this case. MFC after: 3 days |
#
71f00776 |
|
20-Nov-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Remove sio(4). It had been disconnected from build in r181233 in 2008. Reviewed by: imp |
#
052e12a5 |
|
14-Nov-2019 |
Josh Paetzel <jpaetzel@FreeBSD.org> |
Add the pvscsi driver to the tree. This driver allows to usage of the paravirt SCSI controller in VMware products like ESXi. The pvscsi driver provides a substantial performance improvement in block devices versus the emulated mpt and mps SCSI/SAS controllers. Error handling in this driver has not been extensively tested yet. Submitted by: vbhakta@vmware.com Relnotes: yes Sponsored by: VMware, Panzura Differential Revision: D18613 |
#
2a4300e9 |
|
30-Oct-2019 |
Warner Losh <imp@FreeBSD.org> |
Move all the sys/dev/[a-j]* that are common to files.x86 All these device entries are common between the two files. Move them to files.x86. Also sort entries from this range into proper order in files.amd64. |
#
d0c0856f |
|
10-Oct-2019 |
Andriy Gapon <avg@FreeBSD.org> |
emulate illumos membar_producer with atomic_thread_fence_rel membar_producer is supposed to be a store-store barrier. Also, in the code that FreeBSD has ported from illumos membar_producer is used only with regular stores to regular memory (with respect to caching). We do not have an MI primitive for the store-store barrier, so atomic_thread_fence_rel is the closest we have as it provides (load | store) -> store barrier. Previously, membar_producer was an empty function call on all 32-bit arm-s, 32-bit powerpc, riscv and all mips variants. I think that it was inadequate. On other platforms, such as amd64, arm64, i386, powerpc64, sparc64, membar_producer was implemented using stronger primitives than required for a store-store barrier with respect to regular memory access. For example, it used sfence on amd64 and lock-ed nop in i386 (despite TSO). On powerpc64 we now use recommended lwsync instead of eieio. On sparc64 FreeBSD uses TSO mode. On arm64/aarch64 we now use dmb sy instead of dmb ish. Not sure if this is an improvement, actually. After this change we can drop opensolaris_atomic.S for aarch64, amd64, powerpc64 and sparc64 as all required atomic operations have either direct or light-weight mapping to FreeBSD native atomic operations. Discussed with: kib MFC after: 4 weeks |
#
f2521a76 |
|
09-Oct-2019 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
This driver attaches to the Intel VMD drive and connects a new PCI domain starting at the max. domain, and then work down. Then existing FreeBSD drivers will attach. Interrupt routing from the VMD MSI-X to the NVME drive is not well known, so any interrupt is sent to all children that register. VROC used Intel meta data so graid(8) works with it. However, graid(8) supports RAID 0,1,10 for read and write. I have some early code to support writes with RAID 5. Note that RAID 5 can have life issues with SSDs since it can cause write amplification from updating the parity data. Hot plug support needs a change to skip the following check to work: if (pcib_request_feature(dev, PCI_FEATURE_HP) != 0) { in sys/dev/pci/pci_pci.c. Looked at by: imp, rpokala, bcr Differential Revision: https://reviews.freebsd.org/D21383 |
#
7d65d420 |
|
25-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Fix bogusly declared WERRORs in kernel build Many arm kernel configs bogusly specified WERROR=-Werror. There's no reason for this because the default is that and there's no reason to override. These date from a time when we needed to add additional warning->error suppression. They are obsolete and were cut and paste propagated from file to file. Comment out all the WERROR=.... lines in powerpc. They aren't bogus, but were appropriate for the old defaults for gcc4.2.1. Now that we've made the policy decision to suppress -Werror by default on these platforms, it is appropriate to comment these out. People wishing to fix these errors can still un-comment them out, or say WERROR=-Werror on the command line. Fix two instances (cut and paste propagation) of hard-coded -Werror in x86 code. Replace with ${WERROR} instead. This is a no-op change except for people who build WERROR=-Wno-error :). This should fix tinderbox / CI breakage. |
#
96f556f5 |
|
16-Aug-2019 |
Alexander Motin <mav@FreeBSD.org> |
NTB Tool: Test driver for NTB hardware drivers. NTB Tool driver is meant for testing NTB hardware driver functionalities, such as doorbell interrupts, link events, scratchpad registers and memory windows. This is a port of ntb_tool driver from Linux. It has been verified on top of AMD and PLX NTB HW drivers. Submitted by: Arpan Palit <arpan.palit@amd.com> Cleaned up by: mav MFC after: 2 weeks Relnotes: yes Differential Revision: https://reviews.freebsd.org/D18819 |
#
041f5b36 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move the common x86 ipmi files to files.x86. The powerpc file list is different enough that unification will have to wait for the next pass. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
b38e67c9 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
The x86 part of hwpmc is shared, so move it to files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
ff45348b |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Windows ndis support is x86 only. Move the MI parts there. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
cfb592fa |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Intel's isci is part of the chipset, so it is x86 specific. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
43602a9c |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move hyperv to files.x86 Move the comomon part of hyperv to files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
ca46f711 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
The bxe driver, QLogic NetXtreme II Ethernet 10Gb PCIe adapter driver, is x86 specific, and only builds there. Likewise the module is built there. Move it to the x86-only files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
5f82f736 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
The ACPI parts are identical between i386 and amd64 Apart from one MD file, ACPI is a x86 implementation, not specific to either i386 or amd64, so put it into files.x86. Other architectures include fewer files for the same options, so it can't move into the MI files file. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
439fd246 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move via padlock files to files.x86. VIA Padlock support is for VIA C3, C7 and Eden processors, which are 64bit x86 processors. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
807e7867 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Apart from one MD file, aesni is common to x86. Move it into files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
e80d8265 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move all the hp* drivers too files.x86 The HPT drivers are all x86 only. Move them to files.x86. Because of the way we run uudecode, we can use $M instead of needing entries for them in separate files. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
286b4bed |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move the identical x86 lines to files.x86 Move all the identical x86 lines to files.x86. The non-identical ones should be unified and moved as well, but that would require additional changes that would need a more careful review and may not be MFCable, so I'll do them separately. I'll delete the mildly snarky comment when things are unified. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248 |
#
3b4afdbe |
|
13-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
nvme has been moved to 'files' so shouldn't be here anymore. It works on powerpc64 and arm64 these days as well as amd64/i386. |
#
b6fcc3a4 |
|
13-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
ed(4) has been removed from the tree, but these were forgotten in r347911. |
#
09813007 |
|
12-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
ukbdmap.h rule was identical on all platforms, so move them into sys/conf/files. This allows us to remove 'nodevice ukbd' from the arm64 NOTES file. |
#
9246a83c |
|
12-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Create files.x86 files.x86 is for the parts of the system that are common to both i386 and amd64 due too their nature. First up, to get the ball rolling, is fdc, the floppy disk support. It works only on amd64 and i386 these days, and that's unlikely to change. Reviewed by: jhb, cem (earlier versrions) Differential Revision: https://reviews.freebsd.org/D21210 |
#
305b9efe |
|
30-Jul-2019 |
Ed Maste <emaste@FreeBSD.org> |
linuxulator: rename linux_locore.s to .asm It is assembled using "${CC} -x assembler-with-cpp", which by convention (bsd.suffixes.mk) uses the .asm extension. This is a portion of the review referenced below (D18344). That review also renamed linux_support.s to .S, but that is a functional change (using the compiler's integrated assembler instead of as) and will be revisited separately. MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18344 |
#
d4565741 |
|
29-Jul-2019 |
Xin LI <delphij@FreeBSD.org> |
Remove gzip'ed a.out support. The current implementation of gzipped a.out support was based on a very old version of InfoZIP which ships with an ancient modified version of zlib, and was removed from the GENERIC kernel in 1999 when we moved to an ELF world. PR: 205822 Reviewed by: imp, kib, emaste, Yoshihiro Ota <ota at j.email.ne.jp> Relnotes: yes Differential Revision: https://reviews.freebsd.org/D21099 |
#
6683132d |
|
01-Jul-2019 |
Alexander Motin <mav@FreeBSD.org> |
Add driver for NTB in AMD SoC. This patch is the driver for NTB hardware in AMD SoCs (ported from Linux) and enables the NTB infrastructure like Doorbells, Scratchpads and Memory window in AMD SoC. This driver has been validated using ntb_transport and if_ntb driver already available in FreeBSD. Submitted by: Rajesh Kumar <rajesh1.kumar@amd.com> MFC after: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D18774 |
#
e3722b78 |
|
01-Jul-2019 |
Andriy Gapon <avg@FreeBSD.org> |
add superio driver The goal of this driver is consolidate information about SuperIO chips and to provide for peaceful coexistence of drivers that need to access SuperIO configuration registers. While SuperIO chips can host various functions most of them are discoverable and accessible without any knowledge of the SuperIO. Examples are: keyboard and mouse controllers, UARTs, floppy disk controllers. SuperIO-s also provide non-standard functions such as GPIO, watchdog timers and hardware monitoring. Such functions do require drivers with a knowledge of a specific SuperIO. At this time the driver supports a number of ITE and Nuvoton (fka Winbond) SuperIO chips. There is a single driver for all devices. So, I have not done the usual split between the hardware driver and the bus functionality. Although, superio does act as a bus for devices that represent known non-standard functions of a SuperIO chip. The bus provides enumeration of child devices based on the hardcoded knowledge of such functions. The knowledge as extracted from datasheets and other drivers. As there is a single driver, I have not defined a kobj interface for it. So, its interface is currently made of simple functions. I think that we can the flexibility (and complications) when we actually need it. I am planning to convert nctgpio and wbwd to superio bus very soon. Also, I am working on itwd driver (watchdog in ITE SuperIO-s). Additionally, there is ithwm driver based on the reverted sensors import, but I am not sure how to integrate it given that we still lack any sensors interface. Discussed with: imp, jhb MFC after: 7 weeks Differential Revision: https://reviews.freebsd.org/D8175 |
#
c0c317d2 |
|
26-Jun-2019 |
Alexander Motin <mav@FreeBSD.org> |
Fix qlxgbe(4) static build. MFC after: 2 weeks |
#
5ca5dfe9 |
|
31-May-2019 |
Conrad Meyer <cem@FreeBSD.org> |
random(4): Fix RANDOM_LOADABLE build I introduced an obvious compiler error in r346282, so this change fixes that. Unfortunately, RANDOM_LOADABLE isn't covered by our existing tinderbox, and it seems like there were existing latent linking problems. I believe these were introduced on accident in r338324 during reduction of the boolean expression(s) adjacent to randomdev.c and hash.c. It seems the RANDOM_LOADABLE build breakage has gone unnoticed for nine months. This change correctly annotates randomdev.c and hash.c with !random_loadable to match the pre-r338324 logic; and additionally updates the HWRNG drivers in MD 'files.*', which depend on random_device symbols, with !random_loadable (it is invalid for the kernel to depend on symbols from a module). (The expression for both randomdev.c and hash.c was the same, prior to r338324: "optional random random_yarrow | random !random_yarrow !random_loadable". I.e., "random && (yarrow || !loadable)." When Yarrow was removed ("yarrow := False"), the expression was incorrectly reduced to "optional random" when it should have retained "random && !loadable".) Additionally, I discovered that virtio_random was missing a MODULE_DEPEND on random_device, which breaks kld load/link of the driver on RANDOM_LOADABLE kernels. Address that issue as well. PR: 238223 Reported by: Eir Nym <eirnym AT gmail.com> Reviewed by: delphij, markm Approved by: secteam(delphij) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D20466 |
#
7cff9f37 |
|
25-May-2019 |
Sean Eric Fagan <sef@FreeBSD.org> |
Add an AESNI-optimized version of the CCM/CBC cryptographic and authentication code. The primary client of this is probably going to be ZFS encryption. Reviewed by: jhb, cem Sponsored by: iXsystems Inc, Kithrup Enterprises Differential Revision: https://reviews.freebsd.org/D19298 |
#
61ebc359 |
|
21-Feb-2019 |
Bruce Evans <bde@FreeBSD.org> |
Move scterm_teken.c from 6 MD files lists to the MI files list so that it is easier to configure. It is MI, unlike some of the other syscons files already in the MI list. Move scvtb.c similarly. It is needed whenever sc is configured, and is more MI than most of the files already in the MI list. This only changes the combined list for arm64 and mips. These arches already cannot build sc or even NOTES. |
#
a2d5ed94 |
|
14-Dec-2018 |
Marcin Wojtas <mw@FreeBSD.org> |
Introduce driver for TPM 2.0 in CRB and FIFO (TIS) modes It was written basing on: TCG PC Client Platform TPM Profile (PTP) Specification Version 22, Revision 1.03. It only supports Locality 0. Interrupts are only supported in FIFO mode. The driver in FIFO mode was tested on x86 with Infineon SLB9665 discrete TPM chip. Driver in both modes was also tested on qemu with swtpm running on host. Submitted by: Kornel Duleba <mindal@semihalf.com> Obtained from: Semihalf Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D18048 |
#
9417fa9e |
|
08-Dec-2018 |
Jayachandran C. <jchandra@FreeBSD.org> |
acpica : move SRAT/SLIT parsing to sys/dev/acpica This moves the architecture independent parts of sys/x86/acpica/srat.c to sys/dev/acpica/acpi_pxm.c, to be used later on arm64. The function declarations are moved to sys/dev/acpica/acpivar.h We also need to update sys/conf/files.{i386,amd64} to use the new file. No functional changes. Reviewed by: markj, imp Differential Revision: https://reviews.freebsd.org/D17941 |
#
391763d7 |
|
28-Nov-2018 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): add firmware image layout option Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18214 |
#
ae64ac93 |
|
26-Nov-2018 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): add Medford2 support to NIC module Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18142 |
#
fdbe38cf |
|
25-Nov-2018 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): add API to control UDP tunnel ports HW needs to know which UDP packets should be treated as tunnel encapsulation to do inner packet recognition, classification and offloads. Submitted by: Ivan Malov <ivan.malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18134 |
#
6bc6a542 |
|
31-Oct-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Add pci_early function to detect Intel stolen memory. On some Intel devices BIOS does not properly reserve memory (called "stolen memory") for the GPU. If the stolen memory is claimed by the OS, functions that depend on stolen memory (like frame buffer compression) can't be used. A function called pci_early_quirks that is called before the virtual memory system is started was added. In Linux, this PCI early quirks function iterates through all PCI slots to check for any device that require quirks. While this more generic solution is preferable I only ported the Intel graphics specific parts because I think my implementation would be too similar to Linux GPL'd solution after looking at the Linux code too much. The code regarding Intel graphics stolen memory was ported from Linux. In the case of Intel graphics stolen memory this pci_early_quirks will read the stolen memory base and size from north bridge registers. The values are stored in global variables that is later read by linuxkpi_gplv2. Linuxkpi stores these values in a Linux-specific structure that is read by the drm driver. Relevant linuxkpi code is here: https://github.com/FreeBSDDesktop/kms-drm/blob/drm-v4.16/linuxkpi/gplv2/src/linux_compat.c#L37 For now, only amd64 arch is suppor ted since that is the only arch supported by the new drm drivers. I was told that Intel GPUs are always located on 0:2:0 so these values are hard coded for now. Note that the structure and early execution of the detection code is not required in its current form, but we expect that the code will be added shortly which fixes the potential BIOS bugs by reserving the stolen range in phys_avail[]. This must be done as early as possible to avoid conflicts with the potential usage of the memory in kernel. Submitted by: Johannes Lundberg <johalun0@gmail.com> Reviewed by: bwidawsk, imp MFC after: 1 week Differential revision: https://reviews.freebsd.org/D16719 Differential revision: https://reviews.freebsd.org/D17775 |
#
8ce574de |
|
20-Oct-2018 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Add amdgpio, driver for GPIO controller on AMD-based x86_64 platforms Submitted by: Rajesh Kumar <rajbsd@gmail.com> Differential Revision: https://reviews.freebsd.org/D16865 |
#
3f74c027 |
|
15-Oct-2018 |
Eric Joyner <erj@FreeBSD.org> |
iavf(4): Finish rename/rebrand internally Rename functions and variables from ixlv to iavf to match the user-facing name change. There shouldn't be any functional changes with this change, but this may help with browsing the source code and reducing diffs in the future. Submitted by: kbowling@ Reviewed by: erj@, sbruno@ Approved by: re (gjb@) Differential Revision: https://reviews.freebsd.org/D17544 |
#
77c1fcec |
|
12-Oct-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl/iavf(4): Change ixlv to iavf and update it to use iflib(9) Finishes the conversion of the 40Gb Intel Ethernet drivers to iflib(9) for FreeBSD 12.0, and fixes numerous bugs in both ixl(4) and iavf(4). This commit also re-adds the VF driver to GENERIC since it now compiles and functions. The VF driver name was changed from ixlv(4) to iavf(4) because the VF driver is now intended to be used with future products, not just with Fortville/Fort Park VFs. A man page update that documents these drivers is forthcoming in a separate commit. Reviewed by: sbruno@, kbowling@ Tested by: jeffrey.e.pieper@intel.com Approved by: re (gjb@) Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D16429 |
#
50cd0be7 |
|
02-Sep-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Catch exceptions during EFI RT calls on amd64. This appeared to be required to have EFI RT support and EFI RTC enabled by default, because there are too many reports of faulting calls on many different machines. The knob is added to leave the exceptions unhandled to allow to debug the actual bugs. Reviewed by: kevans Sponsored by: The FreeBSD Foundation MFC after: 1 week Approved by: re (rgrimes) Differential revision: https://reviews.freebsd.org/D16972 |
#
97edfc1b |
|
13-Aug-2018 |
Mark Johnston <markj@FreeBSD.org> |
Implement kernel support for early loading of Intel microcode updates. Updates in the format described in section 9.11 of the Intel SDM can now be applied as one of the first steps in booting the kernel. Updates that are loaded this way are automatically re-applied upon exit from ACPI sleep states, in contrast with the existing cpucontrol(8)-based method. For the time being only Intel updates are supported. Microcode update files are passed to the kernel via loader(8). The file type must be "cpu_microcode" in order for the file to be recognized as a candidate microcode update. Updates for multiple CPU types may be concatenated together into a single file, in which case the kernel will select and apply a matching update. Memory used to store the update file will be freed back to the system once the update is applied, so this approach will not consume more memory than required. Reviewed by: kib MFC after: 6 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D16370 |
#
b3a7db3b |
|
29-Jul-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Use SMAP on amd64. Ifuncs selectors dispatch copyin(9) family to the suitable variant, to set rflags.AC around userspace access. Rflags.AC bit is cleared in all kernel entry points unconditionally even on machines not supporting SMAP. Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D13838 |
#
ccca101f |
|
03-Jul-2018 |
Bryan Drewery <bdrewery@FreeBSD.org> |
All genassym.sh usage need offset.inc |
#
4dc1b29b |
|
02-Jul-2018 |
Matt Macy <mmacy@FreeBSD.org> |
ensure that offset.inc is generated before ia32_genassym.c is compiled |
#
f4b36404 |
|
02-Jul-2018 |
Matt Macy <mmacy@FreeBSD.org> |
inline atomics and allow tied modules to inline locks - inline atomics in modules on i386 and amd64 (they were always inline on other arches) - allow modules to opt in to inlining locks by specifying MODULE_TIED=1 in the makefile Reviewed by: kib Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D16079 |
#
56a382c6 |
|
18-Jun-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Remove ixlvc.c from files.amd64 ixlvc.c is only used by the VF driver (ixlv), and that driver currently doesn't work. It will be re-added once the VF driver is finished being ported to iflib. |
#
1031d839 |
|
18-Jun-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Update to use iflib Update the driver to use iflib in order to bring performance, maintainability, and (hopefully) stability benefits to the driver. The driver currently isn't completely ported; features that are missing: - VF driver (ixlv) - SR-IOV host support - RDMA support The plan is to have these re-added to the driver before the next FreeBSD release. Reviewed by: gallatin@ Contributions by: gallatin@, mmacy@, krzysztof.galazka@intel.com Tested by: jeffrey.e.pieper@intel.com MFC after: 1 month Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D15577 |
#
c507c512 |
|
02-Jun-2018 |
Bruce Evans <bde@FreeBSD.org> |
Finish COMPAT_AOUT support for amd64. It wasn't in any amd64 or MI file in /sys/conf, so was unavailable in configurations that don't use modules, and was not testable or notable in NOTES. Its normal configuration (not using a module) is still silently deprecated in aout(4) by not mentioning it there. Update i386 NOTES for COMPAT_AOUT. It is not i386-only, or even very MD. Sort its entry better. Finish gzip configuration (but not support) for amd64. gzip is really gzipped aout. It is currently broken even for i386 (a call to vm fails). amd64 has always attempted to configure and test it, but it depends on COMPAT_AOUT (as noted). The bug that it depends on unconfigured files was not detected since it is configured as a device. All other optional image activators are configured properly using an option. |
#
e92a1350 |
|
31-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
hwpmc: remove unused pre-table driven bits for intel Intel now provides comprehensive tables for all performance counters and the various valid configuration permutations as text .json files. Libpmc has been converted to use these and hwpmc_core has been greatly simplified by moving to passthrough of the table values. The one gotcha is that said tables don't support pentium pro and and pentium IV. There's very few users of hwpmc on _amd64_ kernels on new hardware. It is unlikely that anyone is doing low level optimization on 15 year old Intel hardware. Nonetheless, if someone feels strongly enough to populate the corresponding tables for p4 and ppro I will reinstate the files in to the build. Code for the K8 counters and !x86 architectures remains unchanged. |
#
6a909b96 |
|
07-May-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: replace libkern's memset and memmove with assembly variants memmove is repurposed bcopy (arguments swapped, return value added) The libkern variant is a wrapper around bcopy, so this is a big improvement. memset is repurposed memcpy. The librkern variant is doing fishy stuff, including branching on 0 and calling bzero. Both functions are rather crude and subject to partial depessimization. This is a soft prerequisite to adding variants utilizing the 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. |
#
ceebc2f3 |
|
01-May-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Update to 1.9.9-k Refresh upstream driver before impending conversion to iflib. Major changes: - Support for descriptor writeback mode (required by ixlv(4) for AVF support) - Ability to disable firmware LLDP agent by user (PR 221530) - Fix for TX queue hang when using TSO (PR 221919) - Separate descriptor ring sizes for TX and RX rings PR: 221530, 221919 Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com> Reviewed by: #IntelNetworking MFC after: 1 day Relnotes: Yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D14985 |
#
1e66f787 |
|
26-Apr-2018 |
Sean Bruno <sbruno@FreeBSD.org> |
martpqi(4): - Microsemi SCSI driver for PQI controllers. - Found on newer model HP servers. - Restrict to AMD64 only as per developer request. The driver provides support for the new generation of PQI controllers from Microsemi. This driver is the first SCSI driver to implement the PQI queuing model and it will replace the aacraid driver for Adaptec Series 9 controllers. HARDWARE Controllers supported by the driver include: HPE Gen10 Smart Array Controller Family OEM Controllers based on the Microsemi Chipset. Submitted by: deepak.ukey@microsemi.com Relnotes: yes Sponsored by: Microsemi Differential Revision: https://reviews.freebsd.org/D14514 |
#
63a93856 |
|
24-Mar-2018 |
Mark Peek <mp@FreeBSD.org> |
Add VMCI (Virtual Machine Communication Interface) driver In a virtual machine, VMCI is exposed as a regular PCI device. The primary communication mechanisms supported are a point-to-point bidirectional transport based on a pair of memory-mapped queues, and asynchronous notifications in the form of datagrams and doorbells. These features are available to kernel level components such as vSockets through the VMCI kernel API. In addition to this, the VMCI kernel API provides support for receiving events related to the state of the VMCI communication channels, and the virtual machine itself. Submitted by: Vishnu Dasa <vdasa@vmware.com> Reviewed by: bcr, imp Obtained from: VMware Differential Revision: https://reviews.freebsd.org/D14289 |
#
fc2a8776 |
|
20-Mar-2018 |
Ed Maste <emaste@FreeBSD.org> |
Rename assym.s to assym.inc assym is only to be included by other .s files, and should never actually be assembled by itself. Reviewed by: imp, bdrewery (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D14180 |
#
6e481f83 |
|
16-Mar-2018 |
Ed Maste <emaste@FreeBSD.org> |
Share a single bsd-linux errno table across MD consumers Three copies of the linuxulator linux_sysvec.c contained identical BSD to Linux errno translation tables, and future work to support other architectures will also use the same table. Move the table to a common file to be used by all. Make it 'const int' to place it in .rodata. (Some existing Linux architectures use MD errno values, but x86 and Arm share the generic set.) This change should introduce no functional change; a followup will add missing errno values. MFC after: 3 weeks Sponsored by: Turing Robotic Industries Inc. Differential Revision: https://reviews.freebsd.org/D14665 |
#
24f93aa0 |
|
02-Mar-2018 |
Ravi Pokala <rpokala@FreeBSD.org> |
imcsmb(4): Intel integrated Memory Controller (iMC) SMBus controller driver imcsmb(4) provides smbus(4) support for the SMBus controller functionality in the integrated Memory Controllers (iMCs) embedded in Intel Sandybridge- Xeon, Ivybridge-Xeon, Haswell-Xeon, and Broadwell-Xeon CPUs. Each CPU implements one or more iMCs, depending on the number of cores; each iMC implements two SMBus controllers (iMC-SMBs). *** IMPORTANT NOTE *** Because motherboard firmware or the BMC might try to use the iMC-SMBs for monitoring DIMM temperatures and/or managing an NVDIMM, the driver might need to temporarily disable those functions, or take a hardware interlock, before using the iMC-SMBs. Details on how to do this may vary from board to board, and the procedure may be proprietary. It is strongly suggested that anyone wishing to use this driver contact their motherboard vendor, and modify the driver as described in the manual page and in the driver itself. (For what it's worth, the driver as-is has been tested on various SuperMicro motherboards.) Reviewed by: avg, jhb MFC after: 1 week Relnotes: yes Sponsored by: Panasas Differential Revision: https://reviews.freebsd.org/D14447 Discussed with: avg, ian, jhb Tested by: allanjude (previous version), Panasas |
#
94b8a54a |
|
22-Feb-2018 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
[chvgpio] add GPIO driver for Intel Z8xxx SoC family Add chvgpio(4) driver for Intel Z8xxx SoC family. This product was formerly known as Cherry Trail but Linux and OpenBSD drivers refer to it as Cherry View. This driver is derived from OpenBSD one so the name is kept for alignment with another BSD system. Submitted by: Tom Jones <tj@enoti.me> Reviewed by: gonzo, wblock(man page) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D13086 |
#
68f18f30 |
|
29-Jan-2018 |
Benno Rice <benno@FreeBSD.org> |
Remove some duplicated sys/conf/files* entries. net80211/ieee80211_ageq.c was present twice in sys/conf/files so leave the correctly sorted one. dev/wpi/if_wpi.c was present in sys/conf/files as well as sys/conf/files.amd64 and sys/conf/files.i386 so prefer the sys/conf/files entry. Reviewed by: allanjude, rstone |
#
0e73a619 |
|
01-Oct-2017 |
Andrew Turner <andrew@FreeBSD.org> |
To prepare for adding EFI runtime services support on arm64 move the machine independent parts of the existing code to a new file that can be shared between amd64 and arm64. Reviewed by: kib (previous version), imp Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D12434 |
#
fe182ba1 |
|
26-Sep-2017 |
Conrad Meyer <cem@FreeBSD.org> |
aesni(4): Add support for x86 SHA intrinsics Some x86 class CPUs have accelerated intrinsics for SHA1 and SHA256. Provide this functionality on CPUs that support it. This implements CRYPTO_SHA1, CRYPTO_SHA1_HMAC, and CRYPTO_SHA2_256_HMAC. Correctness: The cryptotest.py suite in tests/sys/opencrypto has been enhanced to verify SHA1 and SHA256 HMAC using standard NIST test vectors. The test passes on this driver. Additionally, jhb's cryptocheck tool has been used to compare various random inputs against OpenSSL. This test also passes. Rough performance averages on AMD Ryzen 1950X (4kB buffer): aesni: SHA1: ~8300 Mb/s SHA256: ~8000 Mb/s cryptosoft: ~1800 Mb/s SHA256: ~1800 Mb/s So ~4.4-4.6x speedup depending on algorithm choice. This is consistent with the results the Linux folks saw for 4kB buffers. The driver borrows SHA update code from sys/crypto sha1 and sha256. The intrinsic step function comes from Intel under a 3-clause BSDL.[0] The intel_sha_extensions_sha<foo>_intrinsic.c files were renamed and lightly modified (added const, resolved a warning or two; included the sha_sse header to declare the functions). [0]: https://software.intel.com/en-us/articles/intel-sha-extensions-implementations Reviewed by: jhb Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12452 |
#
be173360 |
|
12-Sep-2017 |
Sean Bruno <sbruno@FreeBSD.org> |
Leave the Cavium Liquid IO driver exist in files, not files.amd64 Submitted by: imp |
#
f173c2b7 |
|
12-Sep-2017 |
Sean Bruno <sbruno@FreeBSD.org> |
The diff is the initial submission of Cavium Liquidio 2350/2360 10/25G Intelligent NIC driver. The submission conconsists of firmware binary file and driver sources. Submitted by: pkanneganti@cavium.com (Prasad V Kanneganti) Relnotes: Yes Sponsored by: Cavium Networks Differential Revision: https://reviews.freebsd.org/D11927 |
#
a03d621b |
|
05-Sep-2017 |
Conrad Meyer <cem@FreeBSD.org> |
amdtemp(4): Add support for Family 17h temperature sensor The sensor value is formatted similarly to previous models (same bitfield sizes, same units), but must be read off of the internal System Management Network (SMN) from the System Management Unit (SMU) co-processor. PR: 218264 Reported and tested by: Nils Beyer <nbe AT renzel.net> Reviewed by: avg (no +1), mjoras, truckman Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12217 |
#
907f50fe |
|
05-Sep-2017 |
Conrad Meyer <cem@FreeBSD.org> |
Add smn(4) driver for AMD System Management Network AMD Family 17h CPUs have an internal network used to communicate between the host CPU and the PSP and SMU coprocessors. It exposes a simple 32-bit register space. Reviewed by: avg (no +1), mjoras, truckman Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12217 |
#
ed9652da |
|
30-Aug-2017 |
Alexander Motin <mav@FreeBSD.org> |
Add NTB driver for PLX/Avago/Broadcom PCIe switches. This driver supports both NTB-to-NTB and NTB-to-Root Port modes (though the second with predictable complications on hot-plug and reboot events). I tested it with PEX 8717 and PEX 8733 chips, but expect it should work with many other compatible ones too. It supports up to two NT bridges per chip, each of which can have up to 2 64-bit or 4 32-bit memory windows, 6 or 12 scratchpad registers and 16 doorbells. There are also 4 DMA engines in those chips, but they are not yet supported. While there, rename Intel NTB driver from generic ntb_hw(4) to more specific ntb_hw_intel(4), so now it is on par with this new ntb_hw_plx(4) driver and alike to Linux naming. MFC after: 2 weeks Sponsored by: iXsystems, Inc. |
#
8a5d94f9 |
|
03-Aug-2017 |
Warner Losh <imp@FreeBSD.org> |
Make nvd vs nda choice boot-time rather than build-time Introduce hw.nvme.use_nvd tunable. This tunable allows both nvd and nda to be installed in the kernel, while allowing only one of them to create devices. This is an all-or-nothing setting, and you can't change it after boot-time. However, it will allow easier A/B testing. Differential Revision: https://reviews.freebsd.org/D11825 |
#
a19f95b3 |
|
13-Jul-2017 |
Bryan Drewery <bdrewery@FreeBSD.org> |
Fix kldload of if_ixl without PCI_IOV kernel option. This also avoids compiling in pci_iov support into the kernel if_ixoif the PCI_IOV option is disabled. Reviewed by: rstone Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11573 |
#
873ed6f0 |
|
02-Jun-2017 |
Ed Maste <emaste@FreeBSD.org> |
linux vdso: pass -fPIC to the assembler, not linker -fPIC has no effect on linking although it seems to be ignored by GNU ld.bfd. However, it causes ld.lld to terminate with an invalid argument error. This is equivalent to r296057 but for the kernel (not modules) case. MFC after: 2 months Sponsored by: The FreeBSD Foundation |
#
554e6778 |
|
09-May-2017 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Reorganize vmbus device tree For GEN1 Hyper-V, vmbus is attached to pcib0, which contains the resources for PCI passthrough and SR-IOV. There is no acpi_syscontainer0 on GEN1 Hyper-V. For GEN2 Hyper-V, vmbus is attached to acpi_syscontainer0, which contains the resources for PCI passthrough and SR-IOV. There is no pcib0 on GEN2 Hyper-V. The ACPI VMBUS device now only holds its _CRS, which is empty as of this commit; its existence is mainly for upward compatibility. Device tree structure is suggested by jhb@. Tested-by: dexuan@ Collabrated-wth: dexuan@ MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10565 |
#
c9dd0b48 |
|
06-Apr-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Cleanup the bitmap_xxx() functions in the LinuxKPI: - Move all bitmap related functions from bitops.h to bitmap.h, similar to what Linux does. - Apply some minor code cleanup and simplifications to optimize the generated code when using static inline functions. - Implement the following list of bitmap functions which are needed by drm-next and ibcore: - bitmap_find_next_zero_area_off() - bitmap_find_next_zero_area() - bitmap_or() - bitmap_and() - bitmap_xor() - Add missing include directives to the qlnxe driver (davidcs@ has been notified) MFC after: 1 week Sponsored by: Mellanox Technologies |
#
3f1b91c5 |
|
04-Apr-2017 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/kbd: Add support for synthetic keyboard. Synthetic keyboard is the only supported keyboard on GEN2 Hyper-V. Submitted by: Hongjiang Zhang <honzhan microsoft com> MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10196 |
#
11e25f0d |
|
04-Apr-2017 |
David C Somayajulu <davidcs@FreeBSD.org> |
Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's. Qlogic 45000 Series Adapters MFC after:2 weeks |
#
b14e3bd2 |
|
30-Mar-2017 |
Nick Hibma <n_hibma@FreeBSD.org> |
Add nctgpio conf lines so it can be compiled into the kernel. MFC after: 2 days |
#
864c28cf |
|
26-Mar-2017 |
Bruce Evans <bde@FreeBSD.org> |
Use inline asm instead of unportable intrinsics for the SSE4 crc32 optimization. This fixes building with gcc-4.2.1 (it doesn't support SSE4). gas-2.17.50 [FreeBSD] supports SSE4 instructions, so this doesn't need using .byte directives. This fixes depending on host user headers in the kernel. Fix user includes (don't depend on namespace pollution in <nmmintrin.h> that is not included now). The instrinsics had no advantages except to sometimes avoid compiler pessimixations. clang understands them a bit better than inline asm, and generates better looking code which also runs better for cem, but for me it just at the same speed or slower by doing excessive unrollowing in all the wrong places. gcc-4.2.1 also doesn't understand what it is doing with unrolling, but with -O3 somehow it does more unrolling that helps. Reduce 1 of the the compiler pessimizations (copying a variable which already satisfies an "rm" constraint in a good way by being in memory and not used again, to different memory and accessing it there. Force copying it to a register instead). Try to optimize the inner loops significantly, so as to run at full speed on smaller inputs. The algorithm is already very MD, and was tuned for the throughput of 3 crc32 instructions per cycle found on at least Sandybridge through Haswell. Now it is even more tuned for this, so depends more on the compiler not rearranging or unrolling things too much. The main inner loop for should have no difficulty runing at full speed on these CPUs unless the compiler unrolls it too much. However, the main inner loop wasn't even used for buffers smaller than 24K. Now it is used for buffers larger than 384 bytes. Now it is not so long, and the main outer loop is used more. The new optimization is to try to arrange that the outer loop runs in parallel with the next inner loop except for the final iteration; then reduce the loop sizes significantly to take advantage of this. Approved by: cem Not tested in production by: bde |
#
0e8b3ab3 |
|
21-Feb-2017 |
Ed Maste <emaste@FreeBSD.org> |
Exclude -flto when building *genassym.o The build process generates *assym.h using nm from *genassym.o (which is in turn created from *genassym.c). When compiling with link-time optimization (LTO) using -flto, .o files are LLVM bitcode, not ELF objects. This is not usable by genassym.sh, so remove -flto from those ${CC} invocations. Submitted by: George Rimar Reviewed by: dim MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D9659 |
#
b1fa9878 |
|
17-Feb-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Merge i386 and amd64 mtrr drivers. Reviewed by: royger, jhb Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D9648 |
#
cb6b8299 |
|
09-Feb-2017 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Update to 1.7.12-k Refresh upstream driver before impending conversion to iflib. Major new features: - Support for Fortville-based 25G adapters - Support for I2C reads/writes (To prevent getting or sending corrupt data, you should set dev.ixl.0.debug.disable_fw_link_management=1 when using I2C [this will disable link!], then set it to 0 when done. The driver implements the SIOCGI2C ioctl, so ifconfig -v works for reading I2C data, but there are read_i2c and write_i2c sysctls under the .debug sysctl tree [the latter being useful for upper page support in QSFP+]). - Addition of an iWARP client interface (so the future iWARP driver for X722 devices can communicate with the base driver). - Compiling this option in is enabled by default, with "options IXL_IW" in GENERIC. Differential Revision: https://reviews.freebsd.org/D9227 Reviewed by: sbruno MFC after: 2 weeks Sponsored by: Intel Corporation |
#
db6a9c12 |
|
06-Feb-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Only build the ACPI PCI drivers on x86, they are unlikely to be used on arm64 without dignificant changes. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation |
#
fcf59617 |
|
06-Feb-2017 |
Andrey V. Elsukov <ae@FreeBSD.org> |
Merge projects/ipsec into head/. Small summary ------------- o Almost all IPsec releated code was moved into sys/netipsec. o New kernel modules added: ipsec.ko and tcpmd5.ko. New kernel option IPSEC_SUPPORT added. It enables support for loading and unloading of ipsec.ko and tcpmd5.ko kernel modules. o IPSEC_NAT_T option was removed. Now NAT-T support is enabled by default. The UDP_ENCAP_ESPINUDP_NON_IKE encapsulation type support was removed. Added TCP/UDP checksum handling for inbound packets that were decapsulated by transport mode SAs. setkey(8) modified to show run-time NAT-T configuration of SA. o New network pseudo interface if_ipsec(4) added. For now it is build as part of ipsec.ko module (or with IPSEC kernel). It implements IPsec virtual tunnels to create route-based VPNs. o The network stack now invokes IPsec functions using special methods. The only one header file <netipsec/ipsec_support.h> should be included to declare all the needed things to work with IPsec. o All IPsec protocols handlers (ESP/AH/IPCOMP protosw) were removed. Now these protocols are handled directly via IPsec methods. o TCP_SIGNATURE support was reworked to be more close to RFC. o PF_KEY SADB was reworked: - now all security associations stored in the single SPI namespace, and all SAs MUST have unique SPI. - several hash tables added to speed up lookups in SADB. - SADB now uses rmlock to protect access, and concurrent threads can do SA lookups in the same time. - many PF_KEY message handlers were reworked to reflect changes in SADB. - SADB_UPDATE message was extended to support new PF_KEY headers: SADB_X_EXT_NEW_ADDRESS_SRC and SADB_X_EXT_NEW_ADDRESS_DST. They can be used by IKE daemon to change SA addresses. o ipsecrequest and secpolicy structures were cardinally changed to avoid locking protection for ipsecrequest. Now we support only limited number (4) of bundled SAs, but they are supported for both INET and INET6. o INPCB security policy cache was introduced. Each PCB now caches used security policies to avoid SP lookup for each packet. o For inbound security policies added the mode, when the kernel does check for full history of applied IPsec transforms. o References counting rules for security policies and security associations were changed. The proper SA locking added into xform code. o xform code was also changed. Now it is possible to unregister xforms. tdb_xxx structures were changed and renamed to reflect changes in SADB/SPDB, and changed rules for locking and refcounting. Reviewed by: gnn, wblock Obtained from: Yandex LLC Relnotes: yes Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D9352 |
#
6be2ff7d |
|
30-Jan-2017 |
Conrad Meyer <cem@FreeBSD.org> |
calculate_crc32c: Add SSE4.2 implementation on x86 Derived from an implementation by Mark Adler. The fast loop performs three simultaneous CRCs over subsets of the data before composing them. This takes advantage of certain properties of the CRC32 implementation in Intel hardware. (The CRC instruction takes 1 cycle but has 2-3 cycles of latency.) The CRC32 instruction does not manipulate FPU state. i386 does not have the crc32q instruction, so avoid it there. Otherwise the implementation is identical to amd64. Add basic userland tests to verify correctness on a variety of inputs. PR: 216467 Reported by: Ben RUBSON <ben.rubson at gmail.com> Reviewed by: kib@, markj@ (earlier version) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D9342 |
#
2b375b4e |
|
27-Jan-2017 |
Yoshihiro Takahashi <nyan@FreeBSD.org> |
Remove pc98 support completely. I thank all developers and contributors for pc98. Relnotes: yes |
#
7367e679 |
|
29-Dec-2016 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): remove obsolete Wake-On-LAN support Wake-on-lan is not supported in production on any of our adapters, as they don't have the required AUX power connector. (It's possible that AUX power is supplied to some of our ALOM or mezz adapters, but if so then we've never implemented or tested WoL support.) Reviewed by: gnn Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D8972 |
#
ecd9d64f |
|
29-Dec-2016 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): delete hunt_phy.c Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 2 days |
#
d786719d |
|
27-Dec-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
[intelspi] Add SPI driver for Intel BayTrail SoC Add SPI mode (PIO-only) support for Intel Synchronous Serial Port that can be found in several Intel's products starting from PXA family. Most of implementations have slight differences in behavior and in addresses for registers subset. This driver covers only BayTrail SoC implementation for it's the only hardware I have to test it on. Driver attaches to ACPI bus only and does not have PCI or FDT support for now due to lack of hardware to test it on. "intelspi" is the best name I've managed to come up with. Linux driver name (spi-pxa2xx) does not make sense because current implementation does not support actual PXA2xx SoCs. And as far as I know there is no codename assigned to Intel SSP chip. Reviewed by: br, manu MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D8896 |
#
5c072c8e |
|
20-Dec-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/ic: Rename cleaned up files. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8850 |
#
9ff08654 |
|
20-Dec-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/ic: Rname cleaned up file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8848 |
#
f63f5057 |
|
22-Nov-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Only build acpi_timer.c on x86, it fails on arm64 as it attempts to access an invalid address. It is also unneeded on arm64 as we use the ARM Generic Timer driver. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation |
#
8c582c7c |
|
17-Nov-2016 |
Dexuan Cui <dexuan@FreeBSD.org> |
hyperv/pcib: change the file name: pcib.c -> vmbus_pcib.c This makes the file name and the variable naming in the file consistent. Reviewed by: sephe Approved by: sephe (mentor) MFC after: 1 week Sponsored by: Microsoft |
#
531582f5 |
|
17-Nov-2016 |
Dexuan Cui <dexuan@FreeBSD.org> |
hyperv/pcib: Fix the build for some kernel configs Add the dependency on pci explicitly for the pcib and vmbus drivers. The related Makefiles are updated accordingly too. Reviewed by: sephe Approved by: sephe (mentor) MFC after: 1 week Sponsored by: Microsoft |
#
871c968b |
|
16-Nov-2016 |
Dexuan Cui <dexuan@FreeBSD.org> |
hyperv/pcib: enable PCIe pass-through (a.k.a. Discrete Device Assignment) The feature enables us to pass through physical PCIe devices to FreeBSD VM running on Hyper-V (Windows Server 2016) to get near-native performance with low CPU utilization. The patch implements a PCI bridge driver to support the feature: 1) The pcib driver talks to the host to discover device(s) and presents the device(s) to FreeBSD's pci driver via PCI configuration space (note: to access the configuration space, we don't use the standard I/O port 0xCF8/CFC method; instead, we use an MMIO-based method supplied by Hyper-V, which is very similar to the 0xCF8/CFC method). 2) The pcib driver allocates resources for the device(s) and initialize the related BARs, when the device driver's attach method is invoked; 3) The pcib driver talks to the host to create MSI/MSI-X interrupt remapping between the guest and the host; 4) The pcib driver supports device hot add/remove. Reviewed by: sephe Approved by: sephe (mentor) MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8332 |
#
168fce73 |
|
14-Nov-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vss: Add driver and tools for VSS VSS stands for "Volume Shadow Copy Service". Unlike virtual machine snapshot, it only takes snapshot for the virtual disks, so both filesystem and applications have to aware of it, and cooperate the whole VSS process. This driver exposes two device files to the userland: /dev/hv_fsvss_dev Normally userland programs should _not_ mess with this device file. It is currently used by the hv_vss_daemon(8), which freezes and thaws the filesystem. NOTE: currently only UFS is supported, if the system mounts _any_ other filesystems, the hv_vss_daemon(8) will veto the VSS process. If hv_vss_daemon(8) was disabled, then this device file must be opened, and proper ioctls must be issued to keep the VSS working. /dev/hv_appvss_dev Userland application can opened this device file to receive the VSS freeze notification, hold the VSS for a while (mainly to flush application data to filesystem), release the VSS process, and receive the VSS thaw notification i.e. applications can run again. The VSS will still work, even if this device file is not opened. However, only filesystem consistency is promised, if this device file is not opened or is not operated properly. hv_vss_daemon(8) is started by devd(8) by default. It can be disabled by editting /etc/devd/hyperv.conf. Submitted by: Hongjiang Zhang <honzhan microsoft com> Reviewed by: kib, mckusick MFC after: 3 weeks Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8224 |
#
95a36367 |
|
04-Nov-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
[gpio] Add GPIO driver for Intel Bay Trail SoC Bay Trail has three banks of GPIOs exposed to userland as /dev/gpiocN, where N is 1, 2, and 3. Pins in each bank are pre-named to match names on boards schematics: GPIO_S0_SCnn, GPIO_S0_NCnn, and GPIO_S5_nn. Controller supports edge-triggered and level-triggered interrupts but current version of the driver does not have interrupts support |
#
15516c77 |
|
01-Nov-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/hn: Rename cleaned up file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8390 |
#
e6ed06f9 |
|
30-Oct-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/hn: Rename cleaned up RNDIS source file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8361 |
#
68468712 |
|
28-Oct-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/hn: Rename cleaned up NVS source file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8354 |
#
cdf2c7a5 |
|
28-Sep-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/storvsc: Fix the blkvsc disk attachment issues. - The original 'disengage' ATA controller model does not work properly for all possible disk configurations. Use the newly added ATA disk veto eventhandler to fit into all possible disk configuration. - If the 'invalid LUN' happens on blkvsc controllers, return CAM_DEV_NOT_THERE so that CAM will not destroy attached disks under the blkvsc controllers. Submitted by: Hongjiang Zhang <honzhan microsoft com> Discussed with: mav MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D7693 |
#
bc3ad3a1 |
|
21-Sep-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Add kernel interfaces to call EFI Runtime Services. Runtime services require special execution environment for the call. Besides that, OS must inform firmware about runtime virtual memory map which will be active during the calls, with the SetVirtualAddressMap() runtime call, done while the 1:1 mapping is still used. There are two complication: the SetVirtualAddressMap() effectively must be done from loader, which needs to know kernel address map in advance. More, despite not explicitely mentioned in the specification, both 1:1 and the map passed to SetVirtualAddressMap() must be active during the SetVirtualAddressMap() call. Second, there are buggy BIOSes which require both mappings active during runtime calls as well, most likely because they fail to identify all relocations to perform. On amd64, we can get rid of both problems by providing 1:1 mapping for the duration of runtime calls, by temprorary remapping user addresses. As result, we avoid the need for loader to know about future kernel address map, and avoid bugs in BIOSes. Typically BIOS only maps something in low 4G. If not runtime bugs, we would take advantage of the DMAP, as previous versions of this patch did. Similar but more complicated trick can be used even for i386 and 32bit runtime, if and when the EFI boot on i386 is supported. We would need a trampoline page, since potentially whole 4G of VA would be switched on calls, instead of only userspace portion on amd64. Context switches are disabled for the duration of the call, FPU access is granted, and interrupts are not disabled. The later is possible because kernel is mapped during calls. To test, the sysctl mib debug.efi_time is provided, setting it to 1 makes one call to EFI get_time() runtime service, on success the efitm structure is printed to the control terminal. Load efirt.ko, or add EFIRT option to the kernel config, to enable code. Discussed with: emaste, imp Tested by: emaste (mac, qemu) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks |
#
22f2f875 |
|
24-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Make execution of 32-bit CloudABI executables work on amd64. A nice thing about requiring a vDSO is that it makes it incredibly easy to provide full support for running 32-bit processes on 64-bit systems. Instead of letting the kernel be responsible for composing/decomposing 64-bit arguments across multiple registers/stack slots, all of this can now be done in the vDSO. This means that there is no need to provide duplicate copies of certain system calls, like the sys_lseek() and freebsd32_lseek() we have for COMPAT_FREEBSD32. This change imports a new vDSO from the CloudABI repository that has automatically generated code in it that copies system call arguments into a buffer, padding them to eight bytes and zero-extending any pointers/size_t arguments. After returning from the kernel, it does the inverse: extracting return values, in the process truncating pointers/size_t values to 32 bits. Obtained from: https://github.com/NuxiNL/cloudabi |
#
4fbc9065 |
|
21-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Move the linker script from cloudabi64/ to cloudabi/. It turns out that it works perfectly fine for generating 32-bits vDSOs as well. While there, get rid of the extraneous .s file extension. |
#
7ce07161 |
|
21-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Rewrite the vDSOs for CloudABI in assembly. The reason why the old vDSOs were written in C using inline assembly was purely because they were embedded in the C library directly as static inline functions. This was practical during development, because it meant you could invoke system calls without any library dependencies. The vDSO was simply a copy of these functions. Now that we require the use of the vDSO, there is no longer any need for embedding them in C code directly. Rewriting them in assembly has the advantage that they are closer to ideal (less useless branching, less assumptions about registers remaining unclobbered by the kernel, etc). They are also easier to build, as they no longer depend on the C type information for CloudABI. Obtained from: https://github.com/NuxiNL/cloudabi |
#
6212aa15 |
|
10-Aug-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Add APIs for various types of transactions. Reviewed by: Jun Su <junsu microsoft com> MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D7456 |
#
13b4b4df |
|
10-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Provide the CloudABI vDSO to its executables. CloudABI executables already provide support for passing in vDSOs. This functionality is used by the emulator for OS X to inject system call handlers. On FreeBSD, we could use it to optimize calls to gettimeofday(), etc. Though I don't have any plans to optimize any system calls right now, let's go ahead and already pass in a vDSO. This will allow us to simplify the executables, as the traditional "syscall" shims can be removed entirely. It also means that we gain more flexibility with regards to adding and removing system calls. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D7438 |
#
4294f337 |
|
07-Aug-2016 |
Sean Bruno <sbruno@FreeBSD.org> |
ixl(4): Update to ixl-1.6.6-k. Submitted by: erj Reviewed by: jeffrey.e.pieper@intel.com MFC after: 3 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D7391 |
#
fa03524a |
|
03-Aug-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Merge i386 and amd64 variants of mp_watchdog.c into x86/, there is no difference between files. For pc98, put x86/mp_x86.c into the same place as used by i386 file list. Fix typo in comment. Sponsored by: The FreeBSD Foundation MFC after: 1 week |
#
dc831186 |
|
27-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Rename cleaned up bufring code MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D7318 |
#
e86e17af |
|
19-Jul-2016 |
Mark Johnston <markj@FreeBSD.org> |
Merge {amd64,i386}/instr_size.c into x86_instr_size.c. Also reduce the diff between us and upstream: the input data model will always be DATAMODEL_NATIVE because of a bug (p_model is never set but is always initialized to 0), so we don't need to override the caller anyway. This change is also necessary to support the pid provider for 32-bit processes on amd64. MFC after: 2 weeks |
#
e6240996 |
|
19-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Rename laundered vmbus channel code MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7232 |
#
7d590c73 |
|
14-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Merge hv_channel_mgmt.c into hv_channel.c MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7126 |
#
e71d1719 |
|
12-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Merge hv_connection.c into hv_channel.c MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7004 |
#
38d19df6 |
|
12-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Rework vmbus version accessing. Instead of global variable, vmbus version is accessed through a vmbus DEVMETHOD now. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6953 |
#
d09bf884 |
|
10-Jul-2016 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Add linux_mmap.c to the appropriate conf/files. Reported by: kib@ MFC after: 1 week |
#
9a5325c2 |
|
09-Jul-2016 |
Alexander Motin <mav@FreeBSD.org> |
NewBus'ify NTB subsystem. This follows NTB subsystem modularization in Linux, tuning it to FreeBSD native NewBus interfaces. This change allows to support different types of hardware with different drivers, support multiple NTB instances in a system, ntb_transport module use for needs other then if_ntb, etc. Sponsored by: iXsystems, Inc. |
#
baabaca3 |
|
09-Jun-2016 |
Warner Losh <imp@FreeBSD.org> |
New NVMe front end (nda). |
#
d8bf5168 |
|
05-Jun-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Move machine dependent bits into machine dependent files. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6701 |
#
b7bb4816 |
|
01-Jun-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Rename some cleaned up/almost cleaned up files MFC after: 1 week Sponsored by: Microsoft OSTC |
#
7e118515 |
|
23-May-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Add helpers for busdma(9) operation MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6443 |
#
b3b9415f |
|
14-May-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Update file list for sfgxe(4) again and hey, my amd64 kernels compile again. |
#
d8ab84fe |
|
14-May-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Remove more files from sfxge(4) which are no longer in the tree in order to make the universe a more happy place. |
#
587fe827 |
|
13-May-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
hunt_ev.c was deleted with r299596. Remove it from the files list to (hopefully) unbreak amd64 LINT kernels. MFC after: 1 week |
#
0c29fe6d |
|
14-Apr-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Deprecate HYPERV option by moving Hyper-V IDT vector into vmbus Submitted by: Jun Su <junsu microsoft com> Reviewed by: jhb, kib, sephe Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5910 |
#
2b1e924b |
|
03-Apr-2016 |
John Baldwin <jhb@FreeBSD.org> |
Move i386/i386/autoconf.c to sys/x86/x86 and use it on both amd64 and i386. |
#
915d57ae |
|
28-Mar-2016 |
Ed Maste <emaste@FreeBSD.org> |
simplify compile-time default keyboard map generation In r296926 the -P <path> option was added to kbdcontrol, which enables this change for a simplified compile-time default keymap build process. PR: 193865 Reviewed by: Oliver Pinter Tested by: Oliver Pinter MFC After: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5708 |
#
3aa274f7 |
|
15-Mar-2016 |
Ed Maste <emaste@FreeBSD.org> |
Fix atkbdmap.h generation for sc/vt consoles Keymap header files have historically been generated using the build host's /usr/sbin/kbdcontrol and using the host's keymap files. However, that introduces an issue when building a kernel to use vt(4) on a system using sc(4), or vice versa: kbdcontrol searches for keymap files in the /usr/share subdirectory appropriate for the host, not the target. With this change the build searches both the and sc keymap directories from the source tree. PR: 193865 Submitted by: Harald Schmalzbauer |
#
0bc2abdd |
|
23-Feb-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/utils: Code rearrange and cleanup Split heartbeat, shutdown and timesync out of utils code and name them properly. Submitted by: Jun Su <junsu microsoft com> Reviewed by: adrian, sephe, Hongjiang Zhang <honzhan microsoft com> MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5216 |
#
252a329b |
|
21-Jan-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Remove fdt_fixup_table from architectures where it's unneeded. We only make use of fdt_fixup_table on PowerPC and ARM. As such we can remove it from other architectures as it's unneeded. Reviewed by: nwhitehorn Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D5013 |
#
0c848230 |
|
14-Jan-2016 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge: add accessors for license-related MCDI calls to common code Add support for Huntington MCDI licensing interface to common code. Ported from Linux net driver IOCTL functions with restructuring for initial support for V3 licensing API. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Reviewed by: gnn Sponsored by: Solarflare Communications, Inc. MFC after: 2 days Differential Revision: https://reviews.freebsd.org/D4918 |
#
99781cb3 |
|
13-Jan-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: implement an event timer Submitted by: Howard Su <howard0su@gmail.com> Reviewed by: delphij, royger, adrian Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4676 |
#
67da38c5 |
|
21-Sep-2015 |
Ed Maste <emaste@FreeBSD.org> |
Move kbd.c to main sys/conf/files list It is (optionally) used on all architectures. Sponsored by: The FreeBSD Foundation |
#
4db79feb |
|
10-Sep-2015 |
Mark Johnston <markj@FreeBSD.org> |
Merge stack(9) implementations for i386 and amd64 under x86/. Reviewed by: jhb, kib Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3255 |
#
e974f91c |
|
24-Aug-2015 |
Conrad Meyer <cem@FreeBSD.org> |
Import ioat(4) driver I/OAT is also referred to as Crystal Beach DMA and is a Platform Storage Extension (PSE) on some Intel server platforms. This driver currently supports DMA descriptors only and is part of a larger effort to upstream an interconnect between multiple systems using the Non-Transparent Bridge (NTB) PSE. For now, this driver is only built on AMD64 platforms. It may be ported to work on i386 later, if that is desired. The hardware is exclusive to x86. Further documentation on ioat(4), including API documentation and usage, can be found in the new manual page. Bring in a test tool, ioatcontrol(8), in tools/tools/ioat. The test tool is not hooked up to the build and is not intended for end users. Submitted by: jimharris, Carl Delsey <carl.r.delsey@intel.com> Reviewed by: jimharris (reviewed my changes) Approved by: markj (mentor) Relnotes: yes Sponsored by: Intel Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3456 |
#
1558258b |
|
14-Aug-2015 |
Rui Paulo <rpaulo@FreeBSD.org> |
sys/conf: pass NMFLAGS to nm(1) via genassym.sh. |
#
7ef5e8bc |
|
12-Aug-2015 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Better support memory mapped console devices, such as VGA and EFI frame buffers and memory mapped UARTs. 1. Delay calling cninit() until after pmap_bootstrap(). This makes sure we have PMAP initialized enough to add translations. Keep kdb_init() after cninit() so that we have console when we need to break into the debugger on boot. 2. Unfortunately, the ATPIC code had be moved as well so as to avoid a spurious trap #30. The reason for which is not known at this time. 3. In pmap_mapdev_attr(), when we need to map a device prior to the VM system being initialized, use virtual_avail as the KVA to map the device at. In particular, avoid using the direct map on amd64 because we can't demote by virtue of not being able to allocate yet. Keep track of the translation. Re-use the translation after the VM has been initialized to not waste KVA and to satisfy the assumption in uart(4) that the handle returned for the low-level console is the same as later returned when the device is probed and attached. 4. In pmap_unmapdev() remove the mapping from the table when called pre-init. Otherwise keep the mapping. During bus probe and attach device resources are mapped and unmapped multiple times, which would have us destroy the mapping used by the low-level console. 5. In pmap_init(), set pmap_initialized to signal that we're not pre-init anymore. On amd64, bring the direct map in sync with the translations created at that time. 6. Implement bus_space_map() and bus_space_unmap() for real: when the tag corresponds to memory space, call the corresponding pmap_mapdev() and pmap_unmapdev() functions to construct and actual handle. 7. In efifb.c and vt_vga.c, remove the crutches and hacks and simply call pmap_mapdev_attr() or bus_space_map() as desired. Notes: 1. uart(4) already used bus_space_map() during low-level console setup but since serial ports have traditionally been I/O port based, the lack of a proper implementation for said function was not a problem. It has always supported memory mapped UARTs for low-level consoles by setting hw.uart.console accordingly. 2. The use of the direct map on amd64 without setting caching attributes has been a bigger problem than previously thought. This change has the fortunate (and unexpected) side-effect of fixing various EFI frame buffer problems (though not all). PR: 191564, 194952 Special thanks to: 1. XipLink, Inc -- generously donated an Intel Bay Trail E3800 based eval board (ADLE3800PC). 2. The FreeBSD Foundation, in particular emaste@ -- for UEFI support in general and testing. 3. Everyone who tested the proposed for PR 191564. 4. jhb@ and kib@ for being a soundboard and applying a clue bat if so needed. |
#
051b71e5 |
|
10-Aug-2015 |
Conrad Meyer <cem@FreeBSD.org> |
files.amd64: Build ntb_hw.o if if_ntb OR ntb_hw Approved by: markj (mentor) Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3349 |
#
6e5fcd99 |
|
16-Jul-2015 |
Ed Schouten <ed@FreeBSD.org> |
Add a sysentvec for CloudABI on x86-64. Summary: For CloudABI we need to put two things on the stack of new processes: the argument data (a binary blob; not strings) and a startup data structure. The startup data structure contains interesting things such as a pointer to the ELF program header, the thread ID of the initial thread, a stack smashing protection canary, and a pointer to the argument data. Fetching system call arguments and setting the return value is similar to FreeBSD. The only differences are that system call 0 does not exist and that we call into cloudabi_convert_errno() to convert the error code. We also need this function in a couple of other places, so we'd better reuse it here. Reviewers: dchagin, kib Reviewed By: kib Subscribers: imp Differential Revision: https://reviews.freebsd.org/D3098 |
#
4f4d15f0 |
|
10-Jun-2015 |
Ruslan Bukin <br@FreeBSD.org> |
Allow DTrace to be compiled-in to the kernel. This will require for AArch64 as we dont have modules yet. Sponsored by: HEIF5 Sponsored by: ARM Ltd. Differential Revision: https://reviews.freebsd.org/D1997 |
#
3c838a9f |
|
25-May-2015 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge: add 7xxx NICs family support Support 7xxx adapters including firmware-assisted TSO and VLAN tagging: - Solarflare Flareon Ultra 7000 series 10/40G adapters: - Solarflare SFN7042Q QSFP+ Server Adapter - Solarflare SFN7142Q QSFP+ Server Adapter - Solarflare Flareon Ultra 7000 series 10G adapters: - Solarflare SFN7022F SFP+ Server Adapter - Solarflare SFN7122F SFP+ Server Adapter - Solarflare SFN7322F Precision Time Synchronization Server Adapter - Solarflare Flareon 7000 series 10G adapters: - Solarflare SFN7002F SFP+ Server Adapter Support utilities to configure adapters and update firmware. The work is done by Solarflare developers (Andy Moreton, Andrew Lee and many others), Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me. Sponsored by: Solarflare Communications, Inc. MFC after: 2 weeks Causually read by: gnn Differential Revision: https://reviews.freebsd.org/D2618 |
#
c5d87f33 |
|
24-May-2015 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
For objcopy, use --input-target and --output-target When building with gcc 4.9 and binutils 2.25, using '--input' and '--output' returns an error message: objcopy: option `--input' is ambiguous Reported by: Jenkins |
#
4ab7403b |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Rework signal code to allow using it by other modules, like linprocfs: 1. Linux sigset always 64 bit on all platforms. In order to move Linux sigset code to the linux_common module define it as 64 bit int. Move Linux sigset manipulation routines to the MI path. 2. Move Linux signal number definitions to the MI path. In general, they are the same on all platforms except for a few signals. 3. Map Linux RT signals to the FreeBSD RT signals and hide signal conversion tables to avoid conversion errors. 4. Emulate Linux SIGPWR signal via FreeBSD SIGRTMIN signal which is outside of allowed on Linux signal numbers. PR: 197216 |
#
e16fe1c7 |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Implement epoll family system calls. This is a tiny wrapper around kqueue() to implement epoll subset of functionality. The kqueue user data are 32bit on i386 which is not enough for epoll user data, so we keep user data in the proc emuldata. Initial patch developed by rdivacky@ in 2007, then extended by Yuri Victorovich @ r255672 and finished by me in collaboration with mjg@ and jillies@. Differential Revision: https://reviews.freebsd.org/D1092 |
#
67d39748 |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Introduce a new module linux_common.ko which is intended for the following primary purposes: 1. Remove the dependency of linsysfs and linprocfs modules from linux.ko, which will be architecture specific on amd64. 2. Incorporate into linux_common.ko general code for platforms on which we'll support two Linuxulator modules (for both instruction set - 32 & 64 bit). 3. Move malloc(9) declaration to linux_common.ko, to enable getting memory usage statistics properly. Currently linux_common.ko incorporates a code from linux_mib.c and linux_util.c and linprocfs, linsysfs and linux kernel modules depend on linux_common.ko. Temporarily remove dtrace garbage from linux_mib.c and linux_util.c Differential Revision: https://reviews.freebsd.org/D1072 In collaboration with: Vassilis Laganakos. Reviewed by: trasz |
#
bdc37934 |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Implement vdso - virtual dynamic shared object. Through vdso Linux exposes functions from kernel with proper DWARF CFI information so that it becomes easier to unwind through them. Using vdso is a mandatory for a thread cancelation && cleanup on a modern glibc. Differential Revision: https://reviews.freebsd.org/D1060 |
#
59023e6c |
|
30-Apr-2015 |
Jung-uk Kim <jkim@FreeBSD.org> |
Remove leftover from r282269. MFC after: 2 weeks X-MFC with: r282269 |
#
ed95805e |
|
30-Apr-2015 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for Xen PV domU kernels. Support for HVM domU kernels remains. Xen is planning to phase out support for PV upstream since it is harder to maintain and has more overhead. Modern x86 CPUs include virtualization extensions that support HVM guests instead of PV guests. In addition, the PV code was i386 only and not as well maintained recently as the HVM code. - Remove the i386-only NATIVE option that was used to disable certain components for PV kernels. These components are now standard as they are on amd64. - Remove !XENHVM bits from PV drivers. - Remove various shims required for XEN (e.g. PT_UPDATES_FLUSH, LOAD_CR3, etc.) - Remove duplicate copy of <xen/features.h>. - Remove unused, i386-only xenstored.h. Differential Revision: https://reviews.freebsd.org/D2362 Reviewed by: royger Tested by: royger (i386/amd64 HVM domU and amd64 PVH dom0) Relnotes: yes |
#
d588c3d6 |
|
28-Apr-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Only enable the hpet driver on x86 hardware, it doesn't exist on arm64. Sponsored by: The FreeBSD Foundation |
#
02c26f81 |
|
24-Apr-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Move common code from sys/i386/i386/mp_machdep.c and sys/amd64/amd64/mp_machdep.c, to the new common x86 source sys/x86/x86/mp_x86.c. Proposed and reviewed by: jhb Review: https://reviews.freebsd.org/D2347 Sponsored by: The FreeBSD Foundation |
#
dfe7b3bf |
|
21-Apr-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Move some common code from sys/amd64/amd64/machdep.c and sys/i386/i386/machdep.c to new file sys/x86/x86/cpu_machdep.c. Most of the code is related to the idle handling. Discussed with: pluknet Sponsored by: The FreeBSD Foundation |
#
0a110d5b |
|
19-Mar-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Use VT-d interrupt remapping block (IR) to perform FSB messages translation. In particular, despite IO-APICs only take 8bit apic id, IR translation structures accept 32bit APIC Id, which allows x2APIC mode to function properly. Extend msi_cpu of struct msi_intrsrc and io_cpu of ioapic_intsrc to full int from one byte. KPI of IR is isolated into the x86/iommu/iommu_intrmap.h, to avoid bringing all dmar headers into interrupt code. The non-PCI(e) devices which generate message interrupts on FSB require special handling. The HPET FSB interrupts are remapped, while DMAR interrupts are not. For each msi and ioapic interrupt source, the iommu cookie is added, which is in fact index of the IRE (interrupt remap entry) in the IR table. Cookie is made at the source allocation time, and then used at the map time to fill both IRE and device registers. The MSI address/data registers and IO-APIC redirection registers are programmed with the special values which are recognized by IR and used to restore the IRE index, to find proper delivery mode and target. Map all MSI interrupts in the block when msi_map() is called. Since an interrupt source setup and dismantle code are done in the non-sleepable context, flushing interrupt entries cache in the IR hardware, which is done async and ideally waits for the interrupt, requires busy-wait for queue to drain. The dmar_qi_wait_for_seq() is modified to take a boolean argument requesting busy-wait for the written sequence number instead of waiting for interrupt. Some interrupts are configured before IR is initialized, e.g. ACPI SCI. Add intr_reprogram() function to reprogram all already configured interrupts, and call it immediately before an IR unit is enabled. There is still a small window after the IO-APIC redirection entry is reprogrammed with cookie but before the unit is enabled, but to fix this properly, IR must be started much earlier. Add workarounds for 5500 and X58 northbridges, some revisions of which have severe flaws in handling IR. Use the same identification methods as employed by Linux. Review: https://reviews.freebsd.org/D1892 Reviewed by: neel Discussed with: jhb Tested by: glebius, pho (previous versions) Sponsored by: The FreeBSD Foundation MFC after: 3 weeks |
#
3d7f3c9d |
|
01-Mar-2015 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
Record the dependency to x86bios in vga_pci This fixes the build of XEN and XBOX kernels on i386, which was broken in r279487. While here, do not build vga_pci_repost() on PC98. Reported by: bz@ |
#
d3ccddf3 |
|
04-Feb-2015 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Generalized parts of the XEN timer code into a generic pvclock KVM clock shares the same data structures between the guest and the host as Xen so it makes sense to just have a single copy of this code. Differential Revision: https://reviews.freebsd.org/D1429 Reviewed by: royger (eariler version) MFC after: 1 month |
#
c234c2de |
|
30-Jan-2015 |
Dimitry Andric <dim@FreeBSD.org> |
For clang, disable -Wcast-qual warnings for specific aesni files, since clang 3.6.0 will emit a number of such warnings for those files, and they are partially contributed code. |
#
08fca7a5 |
|
12-Dec-2014 |
John-Mark Gurney <jmg@FreeBSD.org> |
Add some new modes to OpenCrypto. These modes are AES-ICM (can be used for counter mode), and AES-GCM. Both of these modes have been added to the aesni module. Included is a set of tests to validate that the software and aesni module calculate the correct values. These use the NIST KAT test vectors. To run the test, you will need to install a soon to be committed port, nist-kat that will install the vectors. Using a port is necessary as the test vectors are around 25MB. All the man pages were updated. I have added a new man page, crypto.7, which includes a description of how to use each mode. All the new modes and some other AES modes are present. It would be good for someone else to go through and document the other modes. A new ioctl was added to support AEAD modes which AES-GCM is one of them. Without this ioctl, it is not possible to test AEAD modes from userland. Add a timing safe bcmp for use to compare MACs. Previously we were using bcmp which could leak timing info and result in the ability to forge messages. Add a minor optimization to the aesni module so that single segment mbufs don't get copied and instead are updated in place. The aesni module needs to be updated to support blocked IO so segmented mbufs don't have to be copied. We require that the IV be specified for all calls for both GCM and ICM. This is to ensure proper use of these functions. Obtained from: p4: //depot/projects/opencrypto Relnotes: yes Sponsored by: FreeBSD Foundation Sponsored by: NetGate |
#
f35b3592 |
|
09-Dec-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: create a new PCI bus override When running as a Xen PVH Dom0 we need to add custom buses that override some of the functionality present in the ACPI PCI Bus and the PCI Bus. We currently override the ACPI PCI Bus, but not the PCI Bus, so add a new override for the PCI Bus and share the generic functions between them. Reported by: David P. Discher <dpd@dpdtech.com> Sponsored by: Citrix Systems R&D conf/files.amd64: - Add the new files. x86/xen/xen_pci_bus.c: - Generic file that contains the PCI overrides so they can be used by the several PCI specific buses. xen/xen_pci.h: - Prototypes for the generic overried functions. dev/xen/pci/xen_pci.c: - Xen specific override for the PCI bus. dev/xen/pci/xen_acpi_pci.c: - Xen specific override for the ACPI PCI bus. |
#
c97038fa |
|
25-Nov-2014 |
Ruslan Bukin <br@FreeBSD.org> |
o Add Virtio MMIO bus driver to config o Move Virtio-related to common config file |
#
217eb125 |
|
03-Nov-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add VirtIO console to the x86 NOTES and files Requested by: jhb |
#
a0cc5254 |
|
03-Nov-2014 |
Konstantin Belousov <kib@FreeBSD.org> |
agp_intel.c provides support for AGP on Intel chipsets from 440/BX to 875. This intersects with the agp_i810.c, which supports all Intels from i810 to Core i5/7. Both agp_intel.c and agp_i810.c are compiled into kernel when device agp is specified in config, and agp_i810 attach seems to be selected by chance due to linking order. Strip support for 810 and later from agp_intel.c. Since 440-class chipsets do not support any long-mode capable CPUs, remove agp_intel.c from amd64 kernel file list. Note that agp_intel.c is not compiled into agp.ko on amd64 already. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks |
#
44e06d15 |
|
30-Sep-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
msi: add Xen MSI implementation This patch adds support for MSI interrupts when running on Xen. Apart from adding the Xen related code needed in order to register MSI interrupts this patch also makes the msi_init function a hook in init_ops, so different MSI implementations can have different initialization functions. Sponsored by: Citrix Systems R&D xen/interface/physdev.h: - Add the MAP_PIRQ_TYPE_MULTI_MSI to map multi-vector MSI to the Xen public interface. x86/include/init.h: - Add a hook for setting custom msi_init methods. amd64/amd64/machdep.c: i386/i386/machdep.c: - Set the default msi_init hook to point to the native MSI initialization method. x86/xen/pv.c: - Set the Xen MSI init hook when running as a Xen guest. x86/x86/local_apic.c: - Call the msi_init hook instead of directly calling msi_init. xen/xen_intr.h: x86/xen/xen_intr.c: - Introduce support for registering/releasing MSI interrupts with Xen. - The MSI interrupts will use the same PIC as the IO APIC interrupts. xen/xen_msi.h: x86/xen/xen_msi.c: - Introduce a Xen MSI implementation. x86/xen/xen_nexus.c: - Overwrite the default MSI hooks in the Xen Nexus to use the Xen MSI implementation. x86/xen/xen_pci.c: - Introduce a Xen specific PCI bus that inherits from the ACPI PCI bus and overwrites the native MSI methods. - This is needed because when running under Xen the MSI messages used to configure MSI interrupts on PCI devices are written by Xen itself. dev/acpica/acpi_pci.c: - Lower the quality of the ACPI PCI bus so the newly introduced Xen PCI bus can take over when needed. conf/files.i386: conf/files.amd64: - Add the newly created files to the build process. |
#
14f2533c |
|
23-Sep-2014 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
As per [1] Intel only supports this driver on 64bit platforms. For now restrict it to amd64. Other architectures might be re-added later once tested. Remove the drivers from the global NOTES and files files and move them to the amd64 specifics. Remove the drivers from the i386 modules build and only leave the amd64 version. Rather than depending on "inet" depend on "pci" and make sure that ixl(4) and ixlv(4) can be compiled independently [2]. This also allows the drivers to build properly on IPv4-only or IPv6-only kernels. PR: 193824 [2] Reviewed by: eric.joyner intel.com MFC after: 3 days References: [1] http://lists.freebsd.org/pipermail/svn-src-all/2014-August/090470.html |
#
0a041f3b |
|
18-Sep-2014 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Implement most of timer_{create,settime,gettime,getoverrun,delete} for amd64/linux32. Fix the entirely bogus (untested) version from r161310 for i386/linux using the same shared code in compat/linux. It is unclear to me if we could support more clock mappings but the current set allows me to successfully run commercial 32bit linux software under linuxolator on amd64. Reviewed by: jhb Differential Revision: D784 MFC after: 3 days Sponsored by: DARPA, AFRL |
#
e72055b7 |
|
12-Sep-2014 |
Xin LI <delphij@FreeBSD.org> |
Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft, many thanks for their continued support of FreeBSD. While I'm there, also implement a new build knob, WITHOUT_HYPERV to disable building and installing of the HyperV utilities when necessary. The HyperV utilities are only built for i386 and amd64 targets. This is a stable/10 candidate for inclusion with 10.1-RELEASE. Submitted by: Wei Hu <weh microsoft com> MFC after: 1 week |
#
33a50f1b |
|
04-Sep-2014 |
John Baldwin <jhb@FreeBSD.org> |
Merge the amd64 and i386 identcpu.c into a single x86 implementation. This brings the structured extended features mask and VT-x reporting to i386 and Intel cache and TLB info (under bootverbose) to amd64. |
#
e048c706 |
|
16-Jun-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: create a Xen nexus to use in PV/PVH Introduce a Xen specific nexus that is going to be used by Xen PV/PVH guests. Sponsored by: Citrix Systems R&D Approved by: gibbs x86/xen/xen_nexus.c: - Introduce a Nexus to use on Xen PV(H) guests, this prevents PV(H) guests from using the legacy Nexus. conf/files.amd64: conf/files.i386: - Add the xen nexus to the build. |
#
aa64d12b |
|
16-Jun-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: introduce xenpv bus Create a dummy bus so top level Xen devices can attach to it (instead of attaching directly to the nexus). This allows to have all the Xen related devices grouped under a single bus. Sponsored by: Citrix Systems R&D Approved by: gibbs x86/xen/xenpv.c: - Attach the xenpv bus when running as a Xen guest. - Attach the ISA bus if needed, in order to attach syscons. conf/files.amd6: conf/files.i386: - Include the xenpv.c file in the build of i386/amd64 kernels using XENHVM. dev/xen/console/console.c: dev/xen/timer/timer.c: xen/xenstore/xenstore.c: - Attach to the xenpv bus instead of the Nexus. dev/xen/xenpci/xenpci.c: - Xen specific devices on PVHVM guests are no longer attached to the xenpci device, they are instead attached to the xenpv bus, remove the now unused methods. |
#
842471b3 |
|
16-Jun-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: add hooks for Xen PV APIC Create the necessary hooks in order to provide a Xen PV APIC implementation that can be used on PVH. Most of the lapic ops shouldn't be called on Xen, since we trap those operations at a higher layer. Sponsored by: Citrix Systems R&D Approved by: gibbs x86/xen/hvm.c: x86/xen/xen_apic.c: - Move IPI related code to xen_apic.c x86/xen/xen_apic.c: - Introduce Xen PV APIC implementation, most of the functions of the lapic interface should never be called when running as PV(H) guest, so make sure FreeBSD panics when trying to use one of those. - Define the Xen APIC implementation in xen_apic_ops. xen/xen_pv.h: - Extern declaration of the xen_apic struct. x86/xen/pv.c: - Use xen_apic_ops as apic_ops when running as PVH guest. conf/files.amd64: conf/files.i386: - Include the xen_apic.c file in the build of i386/amd64 kernels using XENHVM. |
#
81e3caaf |
|
21-May-2014 |
Justin Hibbits <jhibbits@FreeBSD.org> |
imagact_binmisc builds for all supported architectures, so enable it for all. Any bugs in execution will be dealt with as they crop up. MFC after: 3 weeks Relnotes: Yes |
#
804e0170 |
|
02-May-2014 |
Eitan Adler <eadler@FreeBSD.org> |
lindev(4): finish the partial commit in r265212 lindev(4) was only used to provide /dev/full which is now a standard feature of FreeBSD. /dev/full was never linux-specific and provides a generally useful feature. Document this in UPDATING and bump __FreeBSD_version. This will be documented in the PH shortly. Reported by: jkim |
#
6d756449 |
|
08-Apr-2014 |
Sean Bruno <sbruno@FreeBSD.org> |
Add Stacey Son's binary activation patches that allow remapping of execution to a emumation program via parsing of ELF header information. With this kernel module and userland tool, poudriere is able to build ports packages via the QEMU userland tools (or another emulator program) in a different architecture chroot, e.g. TARGET=mips TARGET_ARCH=mips I'm not connecting this to GENERIC for obvious reasons, but this should allow the kernel module to be built by default and enable the building of the userland tool (which automatically loads the kernel module). Submitted by: sson@ Reviewed by: jhb@ |
#
3d80242f |
|
11-Mar-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: add an apic_enumerator for PVH On PVH there's no ACPI, so the CPU enumeration must be implemented using Xen hypercalls. Approved by: gibbs Sponsored by: Citrix Systems R&D x86/xen/pvcpu_enum.c: - Enumerate avaiable vCPUs on PVH by using the VCPUOP_is_up hypercall. - Set vcpu_id for PVH guests. conf/files.amd64: - Include the PV CPU enumerator in the XENHVM build. |
#
5f05c794 |
|
11-Mar-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: implement an early timer for Xen PVH When running as a PVH guest, there's no emulated i8254, so we need to use the Xen PV timer as the early source for DELAY. This change allows for different implementations of the early DELAY function and implements a Xen variant for it. Approved by: gibbs Sponsored by: Citrix Systems R&D dev/xen/timer/timer.c: dev/xen/timer/timer.h: - Implement Xen early delay functions using the PV timer and declare them. x86/include/init.h: - Add hooks for early clock source initialization and early delay functions. i386/i386/machdep.c: pc98/pc98/machdep.c: amd64/amd64/machdep.c: - Set early delay hooks to use the i8254 on bare metal. - Use clock_init (that will in turn make use of init_ops) to initialize the early clock source. amd64/include/clock.h: i386/include/clock.h: - Declare i8254_delay and clock_init. i386/xen/clock.c: - Rename DELAY to i8254_delay. x86/isa/clock.c: - Introduce clock_init that will take care of initializing the early clock by making use of the init_ops hooks. - Move non ISA related delay functions to the newly introduced delay file. x86/x86/delay.c: - Add moved delay related functions. - Implement generic DELAY function that will use the init_ops hooks. x86/xen/pv.c: - Set PVH hooks for the early delay related functions in init_ops. conf/files.amd64: conf/files.i386: conf/files.pc98: - Add delay.c to the kernel build. |
#
1a9cdd37 |
|
11-Mar-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: add PV/PVH kernel entry point Add the PV/PVH entry point and the low level functions for PVH early initialization. Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/genassym.c: - Add __FreeBSD_version define to assym.s so it can be used for the Xen notes. amd64/amd64/locore.S: - Make bootstack global so it can be used from Xen kernel entry point. amd64/amd64/xen-locore.S: - Add Xen notes to the kernel. - Add the Xen PV entry point, that is going to call hammer_time_xen. amd64/include/asmacros.h: - Add ELFNOTE macros. i386/xen/xen_machdep.c: - Define HYPERVISOR_start_info for the XEN i386 PV port, which is going to be used in some shared code between PV and PVH. x86/xen/hvm.c: - Define HYPERVISOR_start_info for the PVH port. x86/xen/pv.c: - Introduce hammer_time_xen which is going to perform early setup for Xen PVH: - Setup shared Xen variables start_info, shared_info and xen_store. - Set guest type. - Create initial page tables as FreeBSD expects to find them. - Call into native init function (hammer_time). xen/xen-os.h: - Declare HYPERVISOR_start_info. conf/files.amd64: - Add amd64/amd64/locore.S and x86/xen/pv.c to the list of files. |
#
7f47cbd3 |
|
15-Feb-2014 |
Christian Brueffer <brueffer@FreeBSD.org> |
Retire the nve(4) driver; nfe(4) has been the default driver for NVIDIA nForce MCP adapters for a long time. Yays: jhb, remko, yongari Nays: none on the current and stable lists |
#
10c40180 |
|
17-Jan-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add very simple virtio_random(4) driver to harvest entropy from host Reviewed by: markm (random bits only) |
#
27cf7d04 |
|
05-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Merge VT(9) project (a.k.a. newcons). Reviewed by: nwhitehorn MFC_to_10_after: re approval Sponsored by: The FreeBSD Foundation |
#
68eeb96a |
|
01-Nov-2013 |
Konstantin Belousov <kib@FreeBSD.org> |
Add support for queued invalidation. Right now, the semaphore write is scheduled after each batch, which is not optimal and must be tuned. Discussed with: alc Tested by: pho MFC after: 1 month |
#
86be9f0d |
|
28-Oct-2013 |
Konstantin Belousov <kib@FreeBSD.org> |
Import the driver for VT-d DMAR hardware, as specified in the revision 1.3 of Intelб╝ Virtualization Technology for Directed I/O Architecture Specification. The Extended Context and PASIDs from the rev. 2.2 are not supported, but I am not aware of any released hardware which implements them. Code does not use queued invalidation, see comments for the reason, and does not provide interrupt remapping services. Code implements the management of the guest address space per domain and allows to establish and tear down arbitrary mappings, but not partial unmapping. The superpages are created as needed, but not promoted. Faults are recorded, fault records could be obtained programmatically, and printed on the console. Implement the busdma(9) using DMARs. This busdma backend avoids bouncing and provides security against misbehaving hardware and driver bad programming, preventing leaks and corruption of the memory by wild DMA accesses. By default, the implementation is compiled into amd64 GENERIC kernel but disabled; to enable, set hw.dmar.enable=1 loader tunable. Code is written to work on i386, but testing there was low priority, and driver is not enabled in GENERIC. Even with the DMAR turned on, individual devices could be directed to use the bounce busdma with the hw.busdma.pci<domain>:<bus>:<device>:<function>.bounce=1 tunable. If DMARs are capable of the pass-through translations, it is used, otherwise, an identity-mapping page table is constructed. The driver was tested on Xeon 5400/5500 chipset legacy machine, Haswell desktop and E5 SandyBridge dual-socket boxes, with ahci(4), ata(4), bce(4), ehci(4), mfi(4), uhci(4), xhci(4) devices. It also works with em(4) and igb(4), but there some fixes are needed for drivers, which are not committed yet. Intel GPUs do not work with DMAR (yet). Many thanks to John Baldwin, who explained me the newbus integration; Peter Holm, who did all testing and helped me to discover and understand several incredible bugs; and to Jim Harris for the access to the EDS and BWG and for listening when I have to explain my findings to somebody. Sponsored by: The FreeBSD Foundation MFC after: 1 month |
#
3f9d41ed |
|
27-Oct-2013 |
Konstantin Belousov <kib@FreeBSD.org> |
Add a virtual table for the busdma methods on x86, to allow different busdma implementations to coexist. Copy busdma_machdep.c to busdma_bounce.c, which is still a single implementation of the busdma interface on x86 for now. The busdma_machdep.c only contains common and dispatch code. Tested by: pho (as part of the larger patch) Sponsored by: The FreeBSD Foundation MFC after: 1 month |
#
1a3c1f06 |
|
06-Oct-2013 |
Mark Murray <markm@FreeBSD.org> |
Snapshot. Looking pretty good; this mostly works now. New code includes: * Read cached entropy at startup, both from files and from loader(8) preloaded entropy. Failures are soft, but announced. Untested. * Use EVENTHANDLER to do above just before we go multiuser. Untested. |
#
f02e47dc |
|
04-Oct-2013 |
Mark Murray <markm@FreeBSD.org> |
Snapshot. This passes the build test, but has not yet been finished or debugged. Contains: * Refactor the hardware RNG CPU instruction sources to feed into the software mixer. This is unfinished. The actual harvesting needs to be sorted out. Modified by me (see below). * Remove 'frac' parameter from random_harvest(). This was never used and adds extra code for no good reason. * Remove device write entropy harvesting. This provided a weak attack vector, was not very good at bootstrapping the device. To follow will be a replacement explicit reseed knob. * Separate out all the RANDOM_PURE sources into separate harvest entities. This adds some secuity in the case where more than one is present. * Review all the code and fix anything obviously messy or inconsistent. Address som review concerns while I'm here, like rename the pseudo-rng to 'dummy'. Submitted by: Arthur Mesh <arthurmesh@gmail.com> (the first item) |
#
4e400768 |
|
20-Sep-2013 |
David Christensen <davidch@FreeBSD.org> |
Substantial rewrite of bxe(4) to add support for the BCM57712 and BCM578XX controllers. Approved by: re MFC after: 4 weeks |
#
b12698e1 |
|
18-Sep-2013 |
Roman Divacky <rdivacky@FreeBSD.org> |
Revert r255672, it has some serious flaws, leaking file references etc. Approved by: re (delphij) |
#
253c75c0 |
|
18-Sep-2013 |
Roman Divacky <rdivacky@FreeBSD.org> |
Implement epoll support in Linuxulator. This is a tiny wrapper around kqueue to implement epoll subset of functionality. The kqueue user data are 32bit on i386 which is not enough for epoll user data so this patch overrides kqueue fileops to maintain enough space in struct file. Initial patch developed by me in 2007 and then extended and finished by Yuri Victorovich. Approved by: re (delphij) Sponsored by: Google Summer of Code Submitted by: Yuri Victorovich <yuri at rawbw dot com> Tested by: Yuri Victorovich <yuri at rawbw dot com> |
#
2ee2dc6f |
|
09-Sep-2013 |
Peter Grehan <grehan@FreeBSD.org> |
Revert the kvp code - there's still some work that needs to be done for that. Discussed with: Microsoft hyper-v devs |
#
d940bfec |
|
09-Sep-2013 |
Peter Grehan <grehan@FreeBSD.org> |
Latest update from Microsoft. Obtained from: Microsoft Hyper-v dev team |
#
46ed9e49 |
|
04-Sep-2013 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r255209
|
#
ff6c7bf5 |
|
03-Sep-2013 |
John-Mark Gurney <jmg@FreeBSD.org> |
Use the fact that the AES-NI instructions can be pipelined to improve performance... Use SSE2 instructions for calculating the XTS tweek factor... Let the compiler do more work and handle register allocation by using intrinsics, now only the key schedule is in assembly... Replace .byte hard coded instructions w/ the proper instructions now that both clang and gcc support them... On my machine, pulling the code to userland I saw performance go from ~150MB/sec to 2GB/sec in XTS mode. GELI on GNOP saw a more modest increase of about 3x due to other system overhead (geom and opencrypto)... These changes allow almost full disk io rate w/ geli... Reviewed by: -current, -security Thanks to: Mike Hamburg for the XTS tweek algorithm |
#
76acc41f |
|
29-Aug-2013 |
Justin T. Gibbs <gibbs@FreeBSD.org> |
Implement vector callback for PVHVM and unify event channel implementations Re-structure Xen HVM support so that: - Xen is detected and hypercalls can be performed very early in system startup. - Xen interrupt services are implemented using FreeBSD's native interrupt delivery infrastructure. - the Xen interrupt service implementation is shared between PV and HVM guests. - Xen interrupt handlers can optionally use a filter handler in order to avoid the overhead of dispatch to an interrupt thread. - interrupt load can be distributed among all available CPUs. - the overhead of accessing the emulated local and I/O apics on HVM is removed for event channel port events. - a similar optimization can eventually, and fairly easily, be used to optimize MSI. Early Xen detection, HVM refactoring, PVHVM interrupt infrastructure, and misc Xen cleanups: Sponsored by: Spectra Logic Corporation Unification of PV & HVM interrupt infrastructure, bug fixes, and misc Xen cleanups: Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D sys/x86/x86/local_apic.c: sys/amd64/include/apicvar.h: sys/i386/include/apicvar.h: sys/amd64/amd64/apic_vector.S: sys/i386/i386/apic_vector.s: sys/amd64/amd64/machdep.c: sys/i386/i386/machdep.c: sys/i386/xen/exception.s: sys/x86/include/segments.h: Reserve IDT vector 0x93 for the Xen event channel upcall interrupt handler. On Hypervisors that support the direct vector callback feature, we can request that this vector be called directly by an injected HVM interrupt event, instead of a simulated PCI interrupt on the Xen platform PCI device. This avoids all of the overhead of dealing with the emulated I/O APIC and local APIC. It also means that the Hypervisor can inject these events on any CPU, allowing upcalls for different ports to be handled in parallel. sys/amd64/amd64/mp_machdep.c: sys/i386/i386/mp_machdep.c: Map Xen per-vcpu area during AP startup. sys/amd64/include/intr_machdep.h: sys/i386/include/intr_machdep.h: Increase the FreeBSD IRQ vector table to include space for event channel interrupt sources. sys/amd64/include/pcpu.h: sys/i386/include/pcpu.h: Remove Xen HVM per-cpu variable data. These fields are now allocated via the dynamic per-cpu scheme. See xen_intr.c for details. sys/amd64/include/xen/hypercall.h: sys/dev/xen/blkback/blkback.c: sys/i386/include/xen/xenvar.h: sys/i386/xen/clock.c: sys/i386/xen/xen_machdep.c: sys/xen/gnttab.c: Prefer FreeBSD primatives to Linux ones in Xen support code. sys/amd64/include/xen/xen-os.h: sys/i386/include/xen/xen-os.h: sys/xen/xen-os.h: sys/dev/xen/balloon/balloon.c: sys/dev/xen/blkback/blkback.c: sys/dev/xen/blkfront/blkfront.c: sys/dev/xen/console/xencons_ring.c: sys/dev/xen/control/control.c: sys/dev/xen/netback/netback.c: sys/dev/xen/netfront/netfront.c: sys/dev/xen/xenpci/xenpci.c: sys/i386/i386/machdep.c: sys/i386/include/pmap.h: sys/i386/include/xen/xenfunc.h: sys/i386/isa/npx.c: sys/i386/xen/clock.c: sys/i386/xen/mp_machdep.c: sys/i386/xen/mptable.c: sys/i386/xen/xen_clock_util.c: sys/i386/xen/xen_machdep.c: sys/i386/xen/xen_rtc.c: sys/xen/evtchn/evtchn_dev.c: sys/xen/features.c: sys/xen/gnttab.c: sys/xen/gnttab.h: sys/xen/hvm.h: sys/xen/xenbus/xenbus.c: sys/xen/xenbus/xenbus_if.m: sys/xen/xenbus/xenbusb_front.c: sys/xen/xenbus/xenbusvar.h: sys/xen/xenstore/xenstore.c: sys/xen/xenstore/xenstore_dev.c: sys/xen/xenstore/xenstorevar.h: Pull common Xen OS support functions/settings into xen/xen-os.h. sys/amd64/include/xen/xen-os.h: sys/i386/include/xen/xen-os.h: sys/xen/xen-os.h: Remove constants, macros, and functions unused in FreeBSD's Xen support. sys/xen/xen-os.h: sys/i386/xen/xen_machdep.c: sys/x86/xen/hvm.c: Introduce new functions xen_domain(), xen_pv_domain(), and xen_hvm_domain(). These are used in favor of #ifdefs so that FreeBSD can dynamically detect and adapt to the presence of a hypervisor. The goal is to have an HVM optimized GENERIC, but more is necessary before this is possible. sys/amd64/amd64/machdep.c: sys/dev/xen/xenpci/xenpcivar.h: sys/dev/xen/xenpci/xenpci.c: sys/x86/xen/hvm.c: sys/sys/kernel.h: Refactor magic ioport, Hypercall table and Hypervisor shared information page setup, and move it to a dedicated HVM support module. HVM mode initialization is now triggered during the SI_SUB_HYPERVISOR phase of system startup. This currently occurs just after the kernel VM is fully setup which is just enough infrastructure to allow the hypercall table and shared info page to be properly mapped. sys/xen/hvm.h: sys/x86/xen/hvm.c: Add definitions and a method for configuring Hypervisor event delievery via a direct vector callback. sys/amd64/include/xen/xen-os.h: sys/x86/xen/hvm.c: sys/conf/files: sys/conf/files.amd64: sys/conf/files.i386: Adjust kernel build to reflect the refactoring of early Xen startup code and Xen interrupt services. sys/dev/xen/blkback/blkback.c: sys/dev/xen/blkfront/blkfront.c: sys/dev/xen/blkfront/block.h: sys/dev/xen/control/control.c: sys/dev/xen/evtchn/evtchn_dev.c: sys/dev/xen/netback/netback.c: sys/dev/xen/netfront/netfront.c: sys/xen/xenstore/xenstore.c: sys/xen/evtchn/evtchn_dev.c: sys/dev/xen/console/console.c: sys/dev/xen/console/xencons_ring.c Adjust drivers to use new xen_intr_*() API. sys/dev/xen/blkback/blkback.c: Since blkback defers all event handling to a taskqueue, convert this task queue to a "fast" taskqueue, and schedule it via an interrupt filter. This avoids an unnecessary ithread context switch. sys/xen/xenstore/xenstore.c: The xenstore driver is MPSAFE. Indicate as much when registering its interrupt handler. sys/xen/xenbus/xenbus.c: sys/xen/xenbus/xenbusvar.h: Remove unused event channel APIs. sys/xen/evtchn.h: Remove all kernel Xen interrupt service API definitions from this file. It is now only used for structure and ioctl definitions related to the event channel userland device driver. Update the definitions in this file to match those from NetBSD. Implementing this interface will be necessary for Dom0 support. sys/xen/evtchn/evtchnvar.h: Add a header file for implemenation internal APIs related to managing event channels event delivery. This is used to allow, for example, the event channel userland device driver to access low-level routines that typical kernel consumers of event channel services should never access. sys/xen/interface/event_channel.h: sys/xen/xen_intr.h: Standardize on the evtchn_port_t type for referring to an event channel port id. In order to prevent low-level event channel APIs from leaking to kernel consumers who should not have access to this data, the type is defined twice: Once in the Xen provided event_channel.h, and again in xen/xen_intr.h. The double declaration is protected by __XEN_EVTCHN_PORT_DEFINED__ to ensure it is never declared twice within a given compilation unit. sys/xen/xen_intr.h: sys/xen/evtchn/evtchn.c: sys/x86/xen/xen_intr.c: sys/dev/xen/xenpci/evtchn.c: sys/dev/xen/xenpci/xenpcivar.h: New implementation of Xen interrupt services. This is similar in many respects to the i386 PV implementation with the exception that events for bound to event channel ports (i.e. not IPI, virtual IRQ, or physical IRQ) are further optimized to avoid mask/unmask operations that aren't necessary for these edge triggered events. Stubs exist for supporting physical IRQ binding, but will need additional work before this implementation can be fully shared between PV and HVM. sys/amd64/amd64/mp_machdep.c: sys/i386/i386/mp_machdep.c: sys/i386/xen/mp_machdep.c sys/x86/xen/hvm.c: Add support for placing vcpu_info into an arbritary memory page instead of using HYPERVISOR_shared_info->vcpu_info. This allows the creation of domains with more than 32 vcpus. sys/i386/i386/machdep.c: sys/i386/xen/clock.c: sys/i386/xen/xen_machdep.c: sys/i386/xen/exception.s: Add support for new event channle implementation. |
#
e3c97c2c |
|
23-Aug-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add vmx(4), a VMware VMXNET3 ethernet driver ported from OpenBSD |
#
672ed870 |
|
01-Aug-2013 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r253862 - change the SI_SUB_RUN_SCHEDULER sysinits in hv_utilc and hv_netvsc_drv_freebsd.c to SI_SUB_KTHREAD_IDLE, since the former is no longer in FreeBSD. The use of these SYSINITs can probably be removed.
|
#
38441bd9 |
|
19-Jul-2013 |
Jim Harris <jimharris@FreeBSD.org> |
Add message when nvd disks are attached and detached. As part of this commit, add an nvme_strvis() function which borrows heavily from cam_strvis(). This will allow stripping of leading/trailing whitespace and also handle unprintable characters in model/serial numbers. This function goes into a new nvme_util.c file which is used by both the driver and nvmecontrol. Sponsored by: Intel Reviewed by: carl MFC after: 3 days |
#
15b996d7 |
|
18-Jul-2013 |
Peter Grehan <grehan@FreeBSD.org> |
First cut at adding the hyperv drivers to GENERIC. The files inventory should probably have the modules split out into net/storage/common etc as the modules build is, but this will do for now. |
#
1fdeb165 |
|
06-Jul-2013 |
Xin LI <delphij@FreeBSD.org> |
Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver. This driver works for FreeBSD/i386 and FreeBSD/amd64 platforms. Many thanks to HighPoint for providing this driver. MFC after: 1 day |
#
237abf0c |
|
28-Jun-2013 |
Davide Italiano <davide@FreeBSD.org> |
- Trim an unused and bogus Makefile for mount_smbfs. - Reconnect with some minor modifications, in particular now selsocket() internals are adapted to use sbintime units after recent'ish calloutng switch. |
#
711bcba0 |
|
25-Jun-2013 |
David C Somayajulu <davidcs@FreeBSD.org> |
Add Qlogic 10Gb Ethernet Driver for Qlogic 8100 Series CNA Adapter Driver version (v2.0.0) Submitted by: David C Somayajulu (davidcs@freebsd.org) QLogic Corporation Approved by: George Neville-Neil (gnn@freebsd.org) |
#
cb34ed44 |
|
20-May-2013 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Add basic support for FDT to i386 & amd64. This change includes: 1. Common headers for fdt.h and ofw_machdep.h under x86/include with indirections under i386/include and amd64/include. 2. New modinfo for loader provided FDT blob. 3. Common x86_init_fdt() called from hammer_time() on amd64 and init386() on i386. 4. Split-off FDT specific low-level console functions from FDT bus methods for the uart(4) driver. The low-level console logic has been moved to uart_cpu_fdt.c and is used for arm, mips & powerpc only. The FDT bus methods are shared across all architectures. 5. Add dev/fdt/fdt_x86.c to hold the fdt_fixup_table[] and the fdt_pic_table[] arrays. Both are empty right now. FDT addresses are I/O ports on x86. Since the core FDT code does not handle different address spaces, adding support for both I/O ports and memory addresses requires some thought and discussion. It may be better to use a compile-time option that controls this. Obtained from: Juniper Networks, Inc. |
#
f10a77bb |
|
15-May-2013 |
David C Somayajulu <davidcs@FreeBSD.org> |
Add Qlogic 10Gigabit Ethernet & CNA Adapter Driver Version 3.10.10 for QLogic 8300 Series Adapters Submitted by: David C Somayajulu (davidcs@freebsd.org) QLogic Corporation Approved by: George Neville-Neil (gnn@freebsd.org) |
#
e47937d1 |
|
29-Apr-2013 |
Carl Delsey <carl@FreeBSD.org> |
Add a new driver to support the Intel Non-Transparent Bridge(NTB). The NTB allows you to connect two systems with this device using a PCI-e link. The driver is made of two modules: - ntb_hw which is a basic hardware abstraction layer for the device. - if_ntb which implements the ntb network device and the communication protocol. The driver is limited at the moment to CPU memcpy instead of using DMA, and only Back-to-Back mode is supported. Also the network device isn't full featured yet. These changes will be coming soon. The DMA change will also bring in the ioat driver from the project branch it is on now. This is an initial port of the GPL/BSD Linux driver contributed by Jon Mason from Intel. Any bugs are my contributions. Sponsored by: Intel Reviewed by: jimharris, joel (man page only) Approved by: jimharris (mentor) |
#
933c7bc9 |
|
12-Apr-2013 |
Jung-uk Kim <jkim@FreeBSD.org> |
Unbreak tinderbox build after r249420. |
#
0cfbcf8c |
|
06-Mar-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Remove the virtio dependency entry for the VirtIO device drivers. This will prevent the kernel from linking if the device driver are included without the virtio module. Remove pci and scbus for the same reason. Also explain the relationship and necessity of the virtio and virtio_pci modules. Currently in FreeBSD, we only support VirtIO PCI, but it could be replaced with a different interface (like MMIO) and the device (network, block, etc) will still function. Requested by: luigi Approved by: grehan (mentor) MFC after: 3 days |
#
8ec81e39 |
|
21-Jan-2013 |
Xin LI <delphij@FreeBSD.org> |
- Don't include date and time the driver is built, this is useful for generating binary diffs. - Constify a few strings used in the driver. - Style changes to make the driver compile with default clang settings. Approved by: HighPoint Technologies MFC after: 3 days |
#
c2217b98 |
|
17-Jan-2013 |
Neel Natu <neel@FreeBSD.org> |
IFC @ r245509
|
#
ae366ffc |
|
13-Jan-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add VirtIO to the i386 and amd64 GENERIC kernels This also removes the kludge from r239009 that covered only the network driver. Reviewed by: grehan Approved by: grehan (mentor) MFC after: 1 week |
#
a10c6f55 |
|
10-Nov-2012 |
Neel Natu <neel@FreeBSD.org> |
IFC @ r242684
|
#
e3cdd5e1 |
|
24-Oct-2012 |
Warner Losh <imp@FreeBSD.org> |
Hoist the MI compat_freebsd32 files up into files from files.*. |
#
2e564269 |
|
17-Oct-2012 |
Attilio Rao <attilio@FreeBSD.org> |
Disconnect non-MPSAFE SMBFS from the build in preparation for dropping GIANT from VFS. In addition, disconnect also netsmb, which is a base requirement for SMBFS. In the while SMBFS regular users can use FUSE interface and smbnetfs port to work with their SMBFS partitions. Also, there are ongoing efforts by vendor to support in-kernel smbfs, so there are good chances that it will get relinked once properly locked. This is not targeted for MFC. |
#
eb85d44f |
|
17-Sep-2012 |
Jim Harris <jimharris@FreeBSD.org> |
Integrate nvme(4) and nvd(4) into the amd64 and i386 builds. Sponsored by: Intel |
#
c5e3d0ab |
|
13-Sep-2012 |
Konstantin Belousov <kib@FreeBSD.org> |
Rename the IVY_RNG option to RDRAND_RNG. Based on submission by: Arthur Mesh <arthurmesh@gmail.com> MFC after: 2 weeks |
#
7e2fcdff |
|
12-Sep-2012 |
Jim Harris <jimharris@FreeBSD.org> |
Remove some trailing whitespace. |
#
72bacdc5 |
|
12-Sep-2012 |
David E. O'Brien <obrien@FreeBSD.org> |
Replace a bare use of 'objcopy' with ${OBJCOPY} for easier cross compilation in environments where 'objcopy' is spelled differently. Submitted by: John Van Horne <jvanhorne@juniper.net> |
#
b8c0bcd2 |
|
05-Sep-2012 |
Dimitry Andric <dim@FreeBSD.org> |
After r240104, make sure the hpt27xx driver also compiles with clang, when it is statically linked into the kernel. MFC after: 2 weeks X-MFC-With: r240104 |
#
ef9461ba |
|
05-Sep-2012 |
Konstantin Belousov <kib@FreeBSD.org> |
Add support for new Intel on-CPU Bull Mountain random number generator, found on IvyBridge and supposedly later CPUs, accessible with RDRAND instruction. From the Intel whitepapers and articles about Bull Mountain, it seems that we do not need to perform post-processing of RDRAND results, like AES-encryption of the data with random IV and keys, which was done for Padlock. Intel claims that sanitization is performed in hardware. Make both Padlock and Bull Mountain random generators support code covered by kernel config options, for the benefit of people who prefer minimal kernels. Also add the tunables to disable hardware generator even if detected. Reviewed by: markm, secteam (simon) Tested by: bapt, Michael Moll <kvedulv@kvedulv.de> MFC after: 3 weeks |
#
b652778e |
|
11-Jul-2012 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r238370
|
#
8a6c6fad |
|
09-Jun-2012 |
Mitsuru IWASAKI <iwasaki@FreeBSD.org> |
Some fixes for r236772. - Remove cpuset stopped_cpus which is no longer used. - Add a short comment for cpuset suspended_cpus clearing. - Fix the un-ordered x86/acpica/acpi_wakeup.c in conf/files.amd64 and i386. Pointed-out by: attilio@ |
#
fb864578 |
|
08-Jun-2012 |
Mitsuru IWASAKI <iwasaki@FreeBSD.org> |
Add x86/acpica/acpi_wakeup.c for amd64 and i386. Difference of suspend/resume procedures are minimized among them. common: - Add global cpuset suspended_cpus to indicate APs are suspended/resumed. - Remove acpi_waketag and acpi_wakemap from acpivar.h (no longer used). - Add some variables in acpi_wakecode.S in order to minimize the difference among amd64 and i386. - Disable load_cr3() because now CR3 is restored in resumectx(). amd64: - Add suspend/resume related members (such as MSR) in PCB. - Modify savectx() for above new PCB members. - Merge acpi_switch.S into cpu_switch.S as resumectx(). i386: - Merge(and remove) suspendctx() into savectx() in order to match with amd64 code. Reviewed by: attilio@, acpi@ |
#
38f1b189 |
|
26-Apr-2012 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r234692 sys/amd64/include/cpufunc.h sys/amd64/include/fpu.h sys/amd64/amd64/fpu.c sys/amd64/vmm/vmm.c - Add API to allow vmm FPU state init/save/restore. FP stuff discussed with: kib
|
#
2059ee3c |
|
10-Apr-2012 |
Marcel Moolenaar <marcel@FreeBSD.org> |
uart_cpu_amd64.c and uart_cpu_i386.c (under sys/dev/uart) are identical now that the bus spaces are unified under sys/x86. Replace them with a single uart_cpu_x86.c. o delete uart_cpu_i386.c o move uart_cpu_amd64.c to uart_cpu_x86.c o update files.amd64 and files.i386 accordingly. |
#
435803f3 |
|
30-Mar-2012 |
John Baldwin <jhb@FreeBSD.org> |
Move the legacy(4) driver to x86. |
#
88c7c434 |
|
27-Mar-2012 |
Peter Wemm <peter@FreeBSD.org> |
Allow (with a license warning) "options ZFS" to work in static kernels. The 'make depend' rules have to use custom -I paths for the special compat includes for the opensolaris/zfs headers. This option will pull in the couple of files that are shared with dtrace, but they appear to correctly use the MODULE_VERSION/MODULE_DEPEND rules so loader should do the right thing, as should kldload. Reviewed by: pjd (glanced at) |
#
646af7c6 |
|
09-Mar-2012 |
John Baldwin <jhb@FreeBSD.org> |
Move i386's intr_machdep.c to the x86 tree and share it with amd64. |
#
ad47abd2 |
|
09-Mar-2012 |
John Baldwin <jhb@FreeBSD.org> |
Allow a native i386 kernel to be built with 'nodevice atpic'. Just as on amd64, if 'device isa' is present quiesce the 8259A's during boot and resume from suspend. While here, be more selective on amd64 about which kernel configurations need elcr.c. MFC after: 2 weeks |
#
0566170f |
|
06-Mar-2012 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Provide wbwd(4), a driver for the watchdog timer found on various Winbond Super I/O chips. With minor efforts it should be possible the extend the driver to support further chips/revisions available from Winbond. In the simplest case only new IDs need to be added, while different chipsets might require their own function to enter extended function mode, etc. Sponsored by: Sandvine Incorporated ULC (in 2011) Reviewed by: emaste, brueffer MFC after: 2 weeks |
#
f11c7f63 |
|
31-Jan-2012 |
Jim Harris <jimharris@FreeBSD.org> |
Add isci(4) driver for amd64 and i386 targets. The isci driver is for the integrated SAS controller in the Intel C600 (Patsburg) chipset. Source files in sys/dev/isci directory are FreeBSD-specific, and sys/dev/isci/scil subdirectory contains an OS-agnostic library (SCIL) published by Intel to control the SAS controller. This library is used primarily as-is in this driver, with some post-processing to better integrate into the kernel build environment. isci.4 and a README in the sys/dev/isci directory contain a few additional details. This driver is only built for amd64 and i386 targets. Sponsored by: Intel Reviewed by: scottl Approved by: scottl |
#
8c6f8f3d |
|
21-Jan-2012 |
Konstantin Belousov <kib@FreeBSD.org> |
Add support for the extended FPU states on amd64, both for native 64bit and 32bit ABIs. As a side-effect, it enables AVX on capable CPUs. In particular: - Query the CPU support for XSAVE, list of the supported extensions and the required size of FPU save area. The hw.use_xsave tunable is provided for disabling XSAVE, and hw.xsave_mask may be used to select the enabled extensions. - Remove the FPU save area from PCB and dynamically allocate the (run-time sized) user save area on the top of the kernel stack, right above the PCB. Reorganize the thread0 PCB initialization to postpone it after BSP is queried for save area size. - The dumppcb, stoppcbs and susppcbs now do not carry the FPU state as well. FPU state is only useful for suspend, where it is saved in dynamically allocated suspfpusave area. - Use XSAVE and XRSTOR to save/restore FPU state, if supported and enabled. - Define new mcontext_t flag _MC_HASFPXSTATE, indicating that mcontext_t has a valid pointer to out-of-struct extended FPU state. Signal handlers are supplied with stack-allocated fpu state. The sigreturn(2) and setcontext(2) syscall honour the flag, allowing the signal handlers to inspect and manipilate extended state in the interrupted context. - The getcontext(2) never returns extended state, since there is no place in the fixed-sized mcontext_t to place variable-sized save area. And, since mcontext_t is embedded into ucontext_t, makes it impossible to fix in a reasonable way. Instead of extending getcontext(2) syscall, provide a sysarch(2) facility to query extended FPU state. - Add ptrace(2) support for getting and setting extended state; while there, implement missed PT_I386_{GET,SET}XMMREGS for 32bit binaries. - Change fpu_kern KPI to not expose struct fpu_kern_ctx layout to consumers, making it opaque. Internally, struct fpu_kern_ctx now contains a space for the extended state. Convert in-kernel consumers of fpu_kern KPI both on i386 and amd64. First version of the support for AVX was submitted by Tim Bird <tim.bird am sony com> on behalf of Sony. This version was written from scratch. Tested by: pho (previous version), Yamagi Burmeister <lists yamagi org> MFC after: 1 month |
#
ee5f87f4 |
|
09-Jan-2012 |
Jung-uk Kim <jkim@FreeBSD.org> |
Enable hardware RNG for VIA Nano processors. PR: kern/163974 |
#
80dbff4e |
|
03-Jan-2012 |
Sean Bruno <sbruno@FreeBSD.org> |
IFC to head to catch up the bhyve branch Approved by: grehan@
|
#
81966bce |
|
28-Dec-2011 |
Xin LI <delphij@FreeBSD.org> |
Import the first release of HighPoint RocketRAID 27xx SAS 6Gb/s HBA card driver. This driver works for FreeBSD/i386 and FreeBSD/amd64 platforms. Many thanks to HighPoint for providing this driver. MFC after: 2 weeks |
#
61af1d13 |
|
12-Dec-2011 |
Fabien Thomas <fabient@FreeBSD.org> |
Add watchdog support for VIA south bridge chipset. Tested on VT8251, VX900 but CX700, VX800, VX855 should works. MFC after: 1 month Sponsored by: NETASQ |
#
7ac6374d |
|
28-Nov-2011 |
Philip Paeps <philip@FreeBSD.org> |
Limit building sfxge(4) in-kernel to amd64 for the time being. We can put it back after I fix the breakages on some of our more exotic platforms. While here, add the driver to the amd64 NOTES, so it can be picked up in LINT builds. |
#
3ee1a36e |
|
21-Nov-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r227804 Pull in the virtio drivers from head.
|
#
0bc7cf6f |
|
03-Nov-2011 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Add QLogic 10 Gigabit Ethernet & CNA Adapter Driver version 1.30 for 3200 and 8200 series cards. Submitted by: David C Somayajulu (david.somayajulu@qlogic.com), Qlogic Corporation MFC After: 3 days |
#
23300944 |
|
30-Jun-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r223696 to pick up dfr's userboot
|
#
1368987a |
|
22-Jun-2011 |
John Baldwin <jhb@FreeBSD.org> |
Move {amd64,i386}/pci/pci_bus.c and {amd64,i386}/include/pci_cfgreg.h to the x86 tree. The $PIR code is still only enabled on i386 and not amd64. While here, make the qpi(4) driver on conditional on 'device pci'. |
#
34a6b2d6 |
|
14-May-2011 |
John Baldwin <jhb@FreeBSD.org> |
First cut at porting the kernel portions of 221828 and 221905 from the BHyVe reference branch to HEAD.
|
#
6c4c7d0f |
|
14-May-2011 |
Peter Grehan <grehan@FreeBSD.org> |
bhyve import part 2 of 2, guest kernel changes. This branch is now considered frozen: future bhyve development will take place in a branch off -CURRENT. sys/dev/bvm/bvm_console.c sys/dev/bvm/bvm_dbg.c - simple console driver/gdb debug port used for bringup. supported by user-space bhyve executable sys/conf/options.amd64 sys/amd64/amd64/minidump_machdep.c - allow NKPT to be set in the kernel config file sys/amd64/conf/GENERIC - mptable config options; bhyve user-space executable creates an mptable with number of CPUs, and optional vendor extension - add bvm console/debug - set NKPT to 512 to allow loading of large RAM disks from the loader - include kdb/gdb sys/amd64/amd64/local_apic.c sys/amd64/amd64/apic_vector.S sys/amd64/include/specialreg.h - if x2apic mode available, use MSRs to access the local APIC, otherwise fall back to 'classic' MMIO mode sys/amd64/amd64/mp_machdep.c - support AP spinup on CPU models that don't have real-mode support by overwriting the real-mode page with a message that supplies the bhyve user-space executable with enough information to start the AP directly in 64-bit mode. sys/amd64/amd64/vm_machdep.c - insert pause statements into cpu shutdown busy-wait loops sys/dev/blackhole/blackhole.c sys/modules/blackhole/Makefile - boot-time loadable module that claims all PCI bus/slot/funcs specified in an env var that are to be used for PCI passthrough sys/amd64/amd64/intr_machdep.c - allow round-robin assignment of device interrupts to CPUs to be disabled from the loader sys/amd64/include/bus.h - convert string ins/outs instructions to loops of individual in/out since bhyve doesn't support these yet sys/kern/subr_bus.c - if the device was no created with a fixed devclass, then remove it's association with the devclass it was associated with during probe. Otherwise, new drivers do not get a chance to probe/attach since the device will stay married to the first driver that it probed successfully but failed to attach. Sponsored by: NetApp, Inc. |
#
70df4233 |
|
19-Apr-2011 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Compile in in_cksum* implementations for both IPv6 and IPv6. While in_pseudo() etc. is often used in offloading feature support, in_cksum() is mostly used to fix some broken hardware. Keeping both around for the moment allows us to compile NIC drivers even in an IPv6 only environment without the need to mangle them with #ifdef INETs in a way they are not prepared for. This will leave some dead code paths that will not be exercised for IPv6. Reviewed by: gnn Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems MFC after: 3 days |
#
222198ab |
|
12-Feb-2011 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Move linux_clone(), linux_fork(), linux_vfork() to a MI path. |
#
2fea6431 |
|
17-Jan-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add reader/writer lock around mem_range_attr_get() and mem_range_attr_set(). Compile sys/dev/mem/memutil.c for all supported platforms and remove now unnecessary dev_mem_md_init(). Consistently define mem_range_softc from mem.c for all platforms. Add missing #include guards for machine/memdev.h and sys/memrange.h. Clean up some nearby style(9) nits. MFC after: 1 month |
#
91ff9dc0 |
|
08-Dec-2010 |
Colin Percival <cperciva@FreeBSD.org> |
Replace i386/i386/busdma_machdep.c and amd64/amd64/busdma_machdep.c (which are identical) with a single x86/x86/busdma_machdep.c. |
#
dd7d207d |
|
07-Dec-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Merge sys/amd64/amd64/tsc.c and sys/i386/i386/tsc.c and move to sys/x86/x86. Discussed with: avg |
#
7c2bf852 |
|
09-Nov-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Refactor acpi_machdep.c for amd64 and i386, move APM emulation into a new file acpi_apm.c, and place it on sys/x86/acpica. |
#
cedd86ca |
|
08-Nov-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Now OsdEnvironment.c is identical on amd64 and i386. Move it to a new home. |
#
13e25cb7 |
|
08-Nov-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the MADT parser for amd64 and i386 to sys/x86/acpica now that it is identical on both platforms. |
#
ba2a2735 |
|
28-Oct-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Merge nexus.c from amd64 and i386 to x86 subtree. Sponsored by: Sandvine Incorporated Tested by: gianni |
#
a3da9792 |
|
28-Oct-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Merge the mptable support from MD bits to x86 subtree. Sponsored by: Sandvine Incorporated Discussed with: jhb |
#
256439c9 |
|
25-Oct-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Merge dump_machdep.c i386/amd64 under the x86 subtree. Sponsored by: Sandvine Incorporated Tested by: gianni |
#
37d696a3 |
|
14-Oct-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Stop hard coding nm(1) and make it overridable. |
#
cbf4dac6 |
|
19-Sep-2010 |
Norikatsu Shigemura <nork@FreeBSD.org> |
Add support 'device tpm' for amd64. Add tpm(4)'s default setting to /boot/defaults/loader.conf. Add 'device tpm' to NOTES for amd64 and i386. Discussed with: takawata Approved by: imp (mentor) |
#
c2175767 |
|
25-Aug-2010 |
John Baldwin <jhb@FreeBSD.org> |
Intel QPI chipsets actually provide two extra "non-core" PCI buses that provide PCI devices for various hardware such as memory controllers, etc. These PCI buses are not enumerated via ACPI however. Add qpi(4) psuedo bus and Host-PCI bridge drivers to enumerate these buses. Currently the driver uses the CPU ID to determine the bridges' presence. In collaboration with: Joseph Golio @ Isilon Systems MFC after: 2 weeks |
#
dd540b46 |
|
27-Jul-2010 |
John Baldwin <jhb@FreeBSD.org> |
Add a parser for the ACPI SRAT table for amd64 and i386. It sets PCPU(domain) for each CPU and populates a mem_affinity array suitable for the NUMA support in the physical memory allocator. Reviewed by: alc |
#
5f270659 |
|
23-Jul-2010 |
Konstantin Belousov <kib@FreeBSD.org> |
Crypto(4) driver for AESNI. The aeskeys_{amd64,i386}.S content was mostly obtained from OpenBSD, no objections to the license from core. Hardware provided by: Sentex Communications Tested by: fabient, pho (previous versions) MFC after: 1 month |
#
43fe7d45 |
|
14-Jul-2010 |
Alexander Motin <mav@FreeBSD.org> |
Rename timeevents.c to kern_clocksource.c. Suggested by: jhb@ |
#
28ab822d |
|
14-Jul-2010 |
Alexander Motin <mav@FreeBSD.org> |
Move timeevents.c to MI code, as it is not x86-specific. I already have it working on Marvell ARM SoCs, and it would be nice to unify timer code between more platforms. |
#
588697d4 |
|
12-Jul-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Move i386-inherited logic of building ACPI headers for acpi_wakeup.c into better places and remove intermediate makefile and shell scripts. This makes parallel kernel build little bit safer for amd64. |
#
25eb1b8c |
|
22-Jun-2010 |
Alexander Motin <mav@FreeBSD.org> |
Some style fixes for r209371. Submitted by: jhb@ |
#
875b8844 |
|
20-Jun-2010 |
Alexander Motin <mav@FreeBSD.org> |
Implement new event timers infrastructure. It provides unified APIs for writing event timer drivers, for choosing best possible drivers by machine independent code and for operating them to supply kernel with hardclock(), statclock() and profclock() events in unified fashion on various hardware. Infrastructure provides support for both per-CPU (independent for every CPU core) and global timers in periodic and one-shot modes. MI management code at this moment uses only periodic mode, but one-shot mode use planned for later, as part of tickless kernel project. For this moment infrastructure used on i386 and amd64 architectures. Other archs are welcome to follow, while their current operation should not be affected. This patch updates existing drivers (i8254, RTC and LAPIC) for the new order, and adds event timers support into the HPET driver. These drivers have different capabilities: LAPIC - per-CPU timer, supports periodic and one-shot operation, may freeze in C3 state, calibrated on first use, so may be not exactly precise. HPET - depending on hardware can work as per-CPU or global, supports periodic and one-shot operation, usually provides several event timers. i8254 - global, limited to periodic mode, because same hardware used also as time counter. RTC - global, supports only periodic mode, set of frequencies in Hz limited by powers of 2. Depending on hardware capabilities, drivers preferred in following orders, either LAPIC, HPETs, i8254, RTC or HPETs, LAPIC, i8254, RTC. User may explicitly specify wanted timers via loader tunables or sysctls: kern.eventtimer.timer1 and kern.eventtimer.timer2. If requested driver is unavailable or unoperational, system will try to replace it. If no more timers available or "NONE" specified for second, system will operate using only one timer, multiplying it's frequency by few times and uing respective dividers to honor hz, stathz and profhz values, set during initial setup. |
#
b9cd2f77 |
|
08-Jun-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the MD support for PCI message signalled interrupts to the x86 tree as it is identical for i386 and amd64. |
#
2465e30f |
|
08-Jun-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the machine check support code to the x86 tree since it is identical on i386 and amd64. Requested by: alc |
#
53a908cb |
|
08-Jun-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the I/O APIC code to the x86 tree since it is identical on i386 and amd64. |
#
fa1ed4bd |
|
23-May-2010 |
Alexander Motin <mav@FreeBSD.org> |
Unify local_apic.c for x86 archs, |
#
c8d050b5 |
|
16-Apr-2010 |
Fabien Thomas <fabient@FreeBSD.org> |
MFC r206089, r206684: - Support for uncore counting events: one fixed PMC with the uncore domain clock, 8 programmable PMC. - Westmere based CPU (Xeon 5600, Corei7 980X) support. - New man pages with events list for core and uncore. - Updated Corei7 events with Intel 253669-033US December 2009 doc. There is some removed events in the documentation, they have been kept in the code but documented in the man page as obsolete. - Offcore response events can be setup with rsp token. Sponsored by: NETASQ |
#
4ccf64eb |
|
06-Apr-2010 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
MFC r205014,205015: Provide groundwork for 32-bit binary compatibility on non-x86 platforms, for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32 option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts of the kernel and enhances the freebsd32 compatibility code to support big-endian platforms. This MFC is required for MFCs of later changes to the freebsd32 compatibility from HEAD. Requested by: kib |
#
1fa7f10b |
|
02-Apr-2010 |
Fabien Thomas <fabient@FreeBSD.org> |
- Support for uncore counting events: one fixed PMC with the uncore domain clock, 8 programmable PMC. - Westmere based CPU (Xeon 5600, Corei7 980X) support. - New man pages with events list for core and uncore. - Updated Corei7 events with Intel 253669-033US December 2009 doc. There is some removed events in the documentation, they have been kept in the code but documented in the man page as obsolete. - Offcore response events can be setup with rsp token. Sponsored by: NETASQ |
#
841c0c7e |
|
11-Mar-2010 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Provide groundwork for 32-bit binary compatibility on non-x86 platforms, for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32 option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts of the kernel and enhances the freebsd32 compatibility code to support big-endian platforms. Reviewed by: kib, jhb |
#
aa3d547d |
|
01-Mar-2010 |
Xin LI <delphij@FreeBSD.org> |
MFC x86emu/x86bios emulator and make previously i386 only dpms and vesa framebuffer driver, etc. work on FreeBSD/amd64. A significant amount of improvements were done by jkim@ during the recent months to make vesa(4) work better, over the initial code import. This work is based on OpenBSD's x86emu implementation and contributed by paradox <ddkprog yahoo com> and swell.k at gmail com. Hopefully I have stolen all their work to 8-STABLE :) All bugs in this commit are mine, as usual. |
#
2df4a3ea |
|
25-Feb-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Fix a mis-change about the compiling of atrtc.c. Sponsored by: Sandvine Incorporated Reported by: Giovanni Trematerra <giovannit dot trematerra at gmail dot com> MFC: 3 weeks X-MFC: r204309 |
#
32580301 |
|
25-Feb-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Introduce the new kernel sub-tree x86 which should contain all the code shared and generalized between our current amd64, i386 and pc98. This is just an initial step that should lead to a more complete effort. For the moment, a very simple porting of cpufreq modules, BIOS calls and the whole MD specific ISA bus part is added to the sub-tree but ideally a lot of code might be added and more shared support should grow. Sponsored by: Sandvine Incorporated Reviewed by: emaste, kib, jhb, imp Discussed on: arch MFC: 3 weeks |
#
646b3953 |
|
18-Feb-2010 |
Rebecca Cran <brucec@FreeBSD.org> |
MFC r203679: Remove the usb2_input_kbd directive that was missed during the renaming of the drivers in the usb2 stack. Approved by: rrs (mentor) |
#
ac6be749 |
|
08-Feb-2010 |
Rebecca Cran <brucec@FreeBSD.org> |
Remove the usb2_input_kbd directive that was missed during the renaming of the drivers in the usb2 stack. Approved by: rrs (mentor) |
#
5e860e7b |
|
20-Dec-2009 |
Andriy Gapon <avg@FreeBSD.org> |
MFC r199969: amdsbwd: new driver for AMD SB600/SB7xx watchdog timer |
#
a1778929 |
|
05-Dec-2009 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
MFC r197518: lindev(4) [1] is supposed to be a collection of linux-specific pseudo devices that we also support, just not by default (thus only LINT or module builds by default). While currently there is only "/dev/full" [2], we are planning to see more in the future. We may decide to change the module/dependency logic in the future should the list grow too long. This is not part of linux.ko as also non-linux binaries like kFreeBSD userland or ports can make use of this as well. Suggested by: rwatson [1] (name) Submitted by: ed [2] Discussed with: markm, ed, rwatson, kib (weeks ago) Reviewed by: rwatson, brueffer (prev. version) PR: kern/68961 |
#
5022f21b |
|
30-Nov-2009 |
Andriy Gapon <avg@FreeBSD.org> |
amdsbwd: new driver for AMD SB600/SB7xx watchdog timer The hardware is compliant with WDRT specification, so I originally considered including generic WDRT watchdog support, but decided against it, because I couldn't find anyone to the code for me. WDRT seems to be not very popular. Besides, generic WDRT porbably requires a slightly different driver approach. Reviewed by: des, gavin, rpaulo MFC after: 3 weeks |
#
3219f535 |
|
19-Oct-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Rewrite x86bios and update its dependent drivers. - Do not map entire real mode memory (1MB). Instead, we map IVT/BDA and ROM area separately. Most notably, ROM area is mapped as device memory (uncacheable) as it should be. User memory is dynamically allocated and free'ed with contigmalloc(9) and contigfree(9). Remove now redundant and potentially dangerous x86bios_alloc.c. If this emulator ever grows to support non-PC hardware, we may implement it with rman(9) later. - Move all host-specific initializations from x86emu_util.c to x86bios.c and remove now unnecessary x86emu_util.c. Currently, non-PC hardware is not supported. We may use bus_space(9) later when the KPI is fixed. - Replace all bzero() calls for emulated registers with more obviously named x86bios_init_regs(). This function also initializes DS and SS properly. - Add x86bios_get_intr(). This function checks if the interrupt vector is available for the platform. It is not necessary for PC-compatible hardware but it may be needed later. ;-) - Do not try turning off monitor if DPMS does not support the state. - Allocate stable memory for VESA OEM strings instead of just holding pointers to them. They may or may not be accessible always. Fix a memory leak of video mode table while I am here. - Add (experimental) BIOS POST call for vesa(4). This function calls VGA BIOS POST code from the current VGA option ROM. Some video controllers cannot save and restore the state properly even if it is claimed to be supported. Usually the symptom is blank display after resuming from suspend state. If the video mode does not match the previous mode after restoring, we try BIOS POST and force the known good initial state. Some magic was taken from NetBSD (and it was taken from vbetool, I believe.) - Add a loader tunable for vgapci(4) to give a hint to dpms(4) and vesa(4) to identify who owns the VESA BIOS. This is very useful for multi-display adapter setup. By default, the POST video controller is automatically probed and the tunable "hw.pci.default_vgapci_unit" is set to corresponding vgapci unit number. You may override it from loader but it is very unlikely to be necessary. Unfortunately only AGP/PCI/PCI-E controllers can be matched because ISA controller does not have necessary device IDs. - Fix a long standing bug in state save/restore function. The state buffer pointer should be ES:BX, not ES:DI according to VBE 3.0. If it ever worked, that's because BX was always zero. :-) - Clean up register initializations more clearer per VBE 3.0. - Fix a lot of style issues with vesa(4). |
#
bbaa712c |
|
11-Oct-2009 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Scan for option ROMs on i386 and amd64 only. |
#
4507f02e |
|
25-Sep-2009 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
lindev(4) [1] is supposed to be a collection of linux-specific pseudo devices that we also support, just not by default (thus only LINT or module builds by default). While currently there is only "/dev/full" [2], we are planning to see more in the future. We may decide to change the module/dependency logic in the future should the list grow too long. This is not part of linux.ko as also non-linux binaries like kFreeBSD userland or ports can make use of this as well. Suggested by: rwatson [1] (name) Submitted by: ed [2] Discussed with: markm, ed, rwatson, kib (weeks ago) Reviewed by: rwatson, brueffer (prev. version) PR: kern/68961 MFC after: 6 weeks |
#
ed89577f |
|
24-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
r197444 unnecessarily changed positions of these files. Re-sort. |
#
19de5df5 |
|
23-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Move sys/dev/x86bios to sys/compat/x86bios. It may not be optimal but it is clearly better than the old place. OK'ed by: delphij, paradox (ddkprog yahoo com) |
#
2f66eb1e |
|
22-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Hide x86bios stuff in i386/amd64 specific files as atkbdc would get these stuff into build. |
#
6abad12d |
|
21-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Automatically depend on x86emu when vesa or dpms is being built into kernel. With this change the user no longer need to remember building this option. Submitted by: swell.k at gmail.com |
#
372c7337 |
|
21-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Enable s3pci on amd64 which works on top of VESA, and allow static building it into kernel on i386 and amd64. Submitted by: swell.k at gmail.com |
#
ee5e90da |
|
09-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
- Teach vesa(4) and dpms(4) about x86emu. [1] - Add vesa kernel options for amd64. - Connect libvgl library and splash kernel modules to amd64 build. - Connect manual page dpms(4) to amd64 build. - Remove old vesa/dpms files. Submitted by: paradox <ddkprog yahoo com> [1], swell k at gmail.com (with some minor tweaks) |
#
9b934d09 |
|
03-Sep-2009 |
Ed Schouten <ed@FreeBSD.org> |
Move libteken out of the syscons directory. I initially committed libteken to sys/dev/syscons/teken, but now that I'm working on a console driver myself, I noticed this was not a good decision. Move it to sys/teken to make it easier for other drivers to use a terminal emulator. Also list teken.c in sys/conf/files, instead of listing it in all the files.arch files separately. |
#
df849145 |
|
23-Jun-2009 |
Rui Paulo <rpaulo@FreeBSD.org> |
* Driver for ACPI WMI (Windows Management Instrumentation) * Driver for ACPI HP extra functionations, which required ACPI WMI driver. Submitted by: Michael <freebsdusb at bindone.de> Approved by: re MFC after: 2 weeks |
#
9dc0b3d5 |
|
13-May-2009 |
John Baldwin <jhb@FreeBSD.org> |
Implement simple machine check support for amd64 and i386. - For CPUs that only support MCE (the machine check exception) but not MCA (i.e. Pentium), all this does is print out the value of the machine check registers and then panic when a machine check exception occurs. - For CPUs that support MCA (the machine check architecture), the support is a bit more involved. - First, there is limited support for decoding the CPU-independent MCA error codes in the kernel, and the kernel uses this to output a short description of any machine check events that occur. - When a machine check exception occurs, all of the MCx banks on the current CPU are scanned and any events are reported to the console before panic'ing. - To catch events for correctable errors, a periodic timer kicks off a task which scans the MCx banks on all CPUs. The frequency of these checks is controlled via the "hw.mca.interval" sysctl. - Userland can request an immediate scan of the MCx banks by writing a non-zero value to "hw.mca.force_scan". - If any correctable events are encountered, the appropriate details are stored in a 'struct mca_record' (defined in <machine/mca.h>). The "hw.mca.count" is a count of such records and each record may be queried via the "hw.mca.records" tree by specifying the record index (0 .. count - 1) as the next name in the MIB similar to using PIDs with the kern.proc.* sysctls. The idea is to export machine check events to userland for more detailed processing. - The periodic timer and hw.mca sysctls are only present if the CPU supports MCA. Discussed with: emaste (briefly) MFC after: 1 month |
#
2c66ccca |
|
01-Apr-2009 |
Konstantin Belousov <kib@FreeBSD.org> |
Save and restore segment registers on amd64 when entering and leaving the kernel on amd64. Fill and read segment registers for mcontext and signals. Handle traps caused by restoration of the invalidated selectors. Implement user-mode creation and manipulation of the process-specific LDT descriptors for amd64, see sysarch(2). Implement support for TSS i/o port access permission bitmap for amd64. Context-switch LDT and TSS. Do not save and restore segment registers on the context switch, that is handled by kernel enter/leave trampolines now. Remove segment restore code from the signal trampolines for freebsd/amd64, freebsd/ia32 and linux/i386 for the same reason. Implement amd64-specific compat shims for sysarch. Linuxolator (temporary ?) switched to use gsbase for thread_area pointer. TODO: Currently, gdb is not adapted to show segment registers from struct reg. Also, no machine-depended ptrace command is added to set segment registers for debugged process. In collaboration with: pho Discussed with: peter Reviewed by: jhb Linuxolator tested by: dchagin |
#
24cd3710 |
|
28-Mar-2009 |
Michael Reifenberger <mr@FreeBSD.org> |
Add support for Phenom (Family 10h) to cpufreq. Its a newer version provided by the author than in the PR. PR: kern/128575 Submitted by: Gen Otsuji annona2 [at] gmail.com |
#
b78d0925 |
|
26-Mar-2009 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Sigh, not my day. Check-in the update version that didn't have the linux_compat mistakes. |
#
d2b2128a |
|
26-Mar-2009 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add stuff to support upcoming BMC/IPMI flashing of newer Dell machine via the Linux tool. - Add Linux shim to ipmi(4) - Create a partitions file to linprocfs to make Linux fdisk see disks. This file is dynamic so we can see disks come and go. - Convert msdosfs to vfat in mtab since Linux uses that for msdosfs. - In the Linux mount path convert vfat passed in to msdosfs so Linux mount works on FreeBSD. Note that tasting works so that if da0 is a msdos file system /compat/linux/bin/mount /dev/da0 /mnt works. - fix a 64it bug for l_off_t. Grabing sh, mount, fdisk, df from Linux, creating a symlink of mtab to /compat/linux/etc/mtab and then some careful unpacking of the Linux bmc update tool and hacking makes it work on newer Dell boxes. Note, probably if you can't figure out how to do this, then you probably shouldn't be doing it :-) |
#
c66d2b38 |
|
16-Mar-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Initial suspend/resume support for amd64. This code is heavily inspired by Takanori Watanabe's experimental SMP patch for i386 and large portion was shamelessly cut and pasted from Peter Wemm's AP boot code. |
#
fc1f75e5 |
|
13-Mar-2009 |
Rui Paulo <rpaulo@FreeBSD.org> |
Rename the k8temp driver to amdtemp. MFC after: 2 weeks |
#
802cb57e |
|
28-Feb-2009 |
Ed Schouten <ed@FreeBSD.org> |
Add memmove() to the kernel, making the kernel compile with Clang. When copying big structures, LLVM generates calls to memmove(), because it may not be able to figure out whether structures overlap. This caused linker errors to occur. memmove() is now implemented using bcopy(). Ideally it would be the other way around, but that can be solved in the future. On ARM we don't do add anything, because it already has memmove(). Discussed on: arch@ Reviewed by: rdivacky |
#
719085d9 |
|
15-Feb-2009 |
Andrew Thompson <thompsa@FreeBSD.org> |
Pull in kbd.c with usb2_input_kbd, just like ukbd. |
#
129dec42 |
|
23-Jan-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
- Add few VIA bridges to agp_via.c and connect it to amd64 build as they support Intel Core/Core 2 and VIA Nano processors. - Align "optional agp" in conf/files.* for consistency while I am here. |
#
9045c736 |
|
12-Jan-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Connect padlock(4) to amd64 build for VIA Nano processors. |
#
b4b1c516 |
|
01-Jan-2009 |
Ed Schouten <ed@FreeBSD.org> |
Replace syscons terminal renderer by a new renderer that uses libteken. Some time ago I started working on a library called libteken, which is terminal emulator. It does not buffer any screen contents, but only keeps terminal state, such as cursor position, attributes, etc. It should implement all escape sequences that are implemented by the cons25 terminal emulator, but also a fair amount of sequences that are present in VT100 and xterm. A lot of random notes, which could be of interest to users/developers: - Even though I'm leaving the terminal type set to `cons25', users can do experiments with placing `xterm-color' in /etc/ttys. Because we only implement a subset of features of xterm, this may cause artifacts. We should consider extending libteken, because in my opinion xterm is the way to go. Some missing features: - Keypad application mode (DECKPAM) - Character sets (SCS) - libteken is filled with a fair amount of assertions, but unfortunately we cannot go into the debugger anymore if we fail them. I've done development of this library almost entirely in userspace. In sys/dev/syscons/teken there are two applications that can be helpful when debugging the code: - teken_demo: a terminal emulator that can be started from a regular xterm that emulates a terminal using libteken. This application can be very useful to debug any rendering issues. - teken_stress: a stress testing application that emulates random terminal output. libteken has literally survived multiple terabytes of random input. - libteken also includes support for UTF-8, but unfortunately our input layer and font renderer don't support this. If users want to experiment with UTF-8 support, they can enable `TEKEN_UTF8' in teken.h. If you recompile your kernel or the teken_demo application, you can hold some nice experiments. - I've left PC98 the way it is right now. The PC98 platform has a custom syscons renderer, which supports some form of localised input. Maybe we should port PC98 to libteken by the time syscons supports UTF-8? - I've removed the `dumb' terminal emulator. It has been broken for years. It hasn't survived the `struct proc' -> `struct thread' conversion. - To prevent confusion among people that want to hack on libteken: unlike syscons, the state machines that parse the escape sequences are machine generated. This means that if you want to add new escape sequences, you have to add an entry to the `sequences' file. This will cause new entries to be added to `teken_state.h'. - Any rendering artifacts that didn't occur prior to this commit are by accident. They should be reported to me, so I can fix them. Discussed on: current@, hackers@ Discussed with: philip (at 25C3) |
#
33644623 |
|
01-Dec-2008 |
Sam Leffler <sam@FreeBSD.org> |
Switch to ath hal source code. Note this removes the ath_hal module; the ath module now brings in the hal support. Kernel config files are almost backwards compatible; supplying device ath_hal gives you the same chip support that the binary hal did but you must also include options AH_SUPPORT_AR5416 to enable the extended format descriptors used by 11n parts. It is now possible to control the chip support included in a build by specifying exactly which chips are to be supported in the config file; consult ath_hal(4) for information. |
#
0cfab8dd |
|
27-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and model 0x1C (Atom). In these CPUs, the actual numbers, kinds and widths of PMCs present need to queried at run time. Support for specific "architectural" events also needs to be queried at run time. Model 0xE CPUs support programmable PMCs, subsequent CPUs additionally support "fixed-function" counters. - Use event names that are close to vendor documentation, taking in account that: - events with identical semantics on two or more CPUs in this family can have differing names in vendor documentation, - identical vendor event names may map to differing events across CPUs, - each type of CPU supports a different subset of measurable events. Fixed-function and programmable counters both use the same vendor names for events. The use of a class name prefix ("iaf-" or "iap-" respectively) permits these to be distinguished. - In libpmc, refactor pmc_name_of_event() into a public interface and an internal helper function, for use by log handling code. - Minor code tweaks: staticize a global, freshen a few comments. Tested by: gnn |
#
e829eb6d |
|
09-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
- Separate PMC class dependent code from other kinds of machine dependencies. A 'struct pmc_classdep' structure describes operations on PMCs; 'struct pmc_mdep' contains one or more 'struct pmc_classdep' structures depending on the CPU in question. Inside PMC class dependent code, row indices are relative to the PMCs supported by the PMC class; MI code in "hwpmc_mod.c" translates global row indices before invoking class dependent operations. - Augment the OP_GETCPUINFO request with the number of PMCs present in a PMC class. - Move code common to Intel CPUs to file "hwpmc_intel.c". - Move TSC handling to file "hwpmc_tsc.c". |
#
ae528485 |
|
22-Sep-2008 |
David E. O'Brien <obrien@FreeBSD.org> |
Add freebsd32 compat shims for ioctl(2) MDIOCATTACH, MDIOCDETACH, MDIOCQUERY, and MDIOCLIST requests. |
#
e085f869 |
|
08-Aug-2008 |
Stanislav Sedov <stas@FreeBSD.org> |
- Add cpuctl(4) pseudo-device driver to provide access to some low-level features of CPUs like reading/writing machine-specific registers, retrieving cpuid data, and updating microcode. - Add cpucontrol(8) utility, that provides userland access to the features of cpuctl(4). - Add subsequent manpages. The cpuctl(4) device operates as follows. The pseudo-device node cpuctlX is created for each cpu present in the systems. The pseudo-device minor number corresponds to the cpu number in the system. The cpuctl(4) pseudo- device allows a number of ioctl to be preformed, namely RDMSR/WRMSR/CPUID and UPDATE. The first pair alows the caller to read/write machine-specific registers from the correspondent CPU. cpuid data could be retrieved using the CPUID call, and microcode updates are applied via UPDATE. The permissions are inforced based on the pseudo-device file permissions. RDMSR/CPUID will be allowed when the caller has read access to the device node, while WRMSR/UPDATE will be granted only when the node is opened for writing. There're also a number of priv(9) checks. The cpucontrol(8) utility is intened to provide userland access to the cpuctl(4) device features. The utility also allows one to apply cpu microcode updates. Currently only Intel and AMD cpus are supported and were tested. Approved by: kib Reviewed by: rpaulo, cokane, Peter Jeremy MFC after: 1 month |
#
0051271e |
|
21-Apr-2008 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make genclock standard on all platforms. Thanks to: grehan & marcel for platform support on ia64 and ppc. |
#
36bff1eb |
|
14-Apr-2008 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Convert amd64 and i386 to share the atrtc device driver. |
#
6f15a9e5 |
|
12-Apr-2008 |
Rui Paulo <rpaulo@FreeBSD.org> |
Connect k8temp(4) to the build. |
#
593c8734 |
|
03-Feb-2008 |
Scott Long <scottl@FreeBSD.org> |
Remove the rr232x driver. It has been superceded by the hptrr driver. |
#
b063a422 |
|
14-Dec-2007 |
Scott Long <scottl@FreeBSD.org> |
Add the 'hptrr' driver for supporting the following Highpoint RocketRAID cards: o RocketRAID 172x series o RocketRAID 174x series o RocketRAID 2210 o RocketRAID 222x series o RocketRAID 2240 o RocketRAID 230x series o RocketRAID 231x series o RocketRAID 232x series o RocketRAID 2340 o RocketRAID 2522 Many thanks to Highpoint for their continued support of FreeBSD. Submitted by: Highpoint |
#
dbfb54ff |
|
09-Dec-2007 |
Alan Cox <alc@FreeBSD.org> |
Eliminate compilation warnings due to the use of non-static inlines through the introduction and use of the __gnu89_inline attribute. Submitted by: bde (i386) MFC after: 3 days |
#
3c90d1ea |
|
02-Dec-2007 |
Robert Watson <rwatson@FreeBSD.org> |
Break out stack(9) from ddb(4): - Introduce per-architecture stack_machdep.c to hold stack_save(9). - Introduce per-architecture machine/stack.h to capture any common definitions required between db_trace.c and stack_machdep.c. - Add new kernel option "options STACK"; we will build in stack(9) if it is defined, or also if "options DDB" is defined to provide compatibility with existing users of stack(9). Add new stack_save_td(9) function, which allows the capture of a stacktrace of another thread rather than the current thread, which the existing stack_save(9) was limited to. It requires that the thread be neither swapped out nor running, which is the responsibility of the consumer to enforce. Update stack(9) man page. Build tested: amd64, arm, i386, ia64, powerpc, sparc64, sun4v Runtime tested: amd64 (rwatson), arm (cognet), i386 (rwatson) |
#
dbac8ff4 |
|
12-Nov-2007 |
John Baldwin <jhb@FreeBSD.org> |
Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was bumped to 800004 to note the change though userland apps should not be affected since they use <sys/agpio.h> rather than the headers in sys/dev/agp. Discussed with: anholt Repocopy by: simon |
#
03734771 |
|
08-Nov-2007 |
Benjamin Close <benjsc@FreeBSD.org> |
Link wpi(4) into the build. This includes: o mtree (for legal/intel_wpi) o manpage for i386/amd64 archs o module for i386/amd64 archs o NOTES for i386/amd64 archs Approved by: mlaier (comentor) |
#
e702bc74 |
|
07-Nov-2007 |
Rui Paulo <rpaulo@FreeBSD.org> |
Connect asmc to the build infrastructure. Approved by: njl (mentor) Reviewed by: njl (mentor) |
#
d5566384 |
|
25-Oct-2007 |
Peter Wemm <peter@FreeBSD.org> |
Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not refactored it to be a generic device. Instead of being part of the standard kernel, there is now a 'nvram' device for i386/amd64. It is in DEFAULTS like io and mem, and can be turned off with 'nodevice nvram'. This matches the previous behavior when it was first committed. |
#
a9d185b2 |
|
25-Oct-2007 |
David E. O'Brien <obrien@FreeBSD.org> |
Align. |
#
9f05d312 |
|
15-Oct-2007 |
Alexander Leidinger <netchild@FreeBSD.org> |
Backout sensors framework. Requested by: phk Discussed on: cvs-all |
#
989500bf |
|
14-Oct-2007 |
Alexander Leidinger <netchild@FreeBSD.org> |
Import it(4) and lm(4), supporting most popular Super I/O Hardware Monitors. Submitted by: Constantine A. Murenin <cnst@FreeBSD.org> Sponsored by: Google Summer of Code 2007 (GSoC2007/cnst-sensors) Mentored by: syrinx Tested by: many OKed by: kensmith Obtained from: OpenBSD (parts) |
#
83d18f22 |
|
15-Aug-2007 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Add a driver for the on-die digital thermal sensor found on Intel Core and newer CPUs (including Core 2 and Core / Core 2 based Xeons). The driver attaches to each cpu device and creates a sysctl node in that device's sysctl context (dev.cpu.N.temperature). When invoked, the handler binds to the appropriate CPU to ensure a correct reading. Submitted by: Rui Paulo <rpaulo@fnop.net> Sponsored by: Google Summer of Code 2007 Tested by: des, marcus, Constantine A. Murenin, Ian FREISLICH Approved by: re (kensmith) MFC after: 3 weeks |
#
a9431a52 |
|
05-Jul-2007 |
Peter Wemm <peter@FreeBSD.org> |
Temporarily turn nowerror on for i386 and amd64 pmap.c. I'd like to study exactly what effect the options cause to the code with gcc these days. Approved by: re (rwatson) |
#
b2630c29 |
|
02-Jul-2007 |
George V. Neville-Neil <gnn@FreeBSD.org> |
Commit the change from FAST_IPSEC to IPSEC. The FAST_IPSEC option is now deprecated, as well as the KAME IPsec code. What was FAST_IPSEC is now IPSEC. Approved by: re Sponsored by: Secure Computing |
#
2b39bb4f |
|
10-Jun-2007 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Use default options for default partitioning schemes, rather than making the relevant files standard. This avoids duplication and makes it easier to override/disable unwanted schemes. Since ARM doesn't have a DEFAULTS configuration file, leave the source files for the BSD and MBR partitioning schemes in files.arm for now. |
#
a96811b1 |
|
23-May-2007 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix the dependency for the linux_support.s, explicitely add linux_assym.h. Reported by: rwatson In collaboration with: rdivacky Sponsored by: Google SoC 2007 |
#
1c182de9 |
|
23-May-2007 |
Konstantin Belousov <kib@FreeBSD.org> |
Move futex support code from <arch>/support.s into linux compat directory. Implement all futex atomic operations in assembler to not depend on the fuword() that does not allow to distinguish between -1 and failure return. Correctly return 0 from atomic operations on success. In collaboration with: rdivacky Tested by: Scot Hetzel <swhetzel gmail com>, Milos Vyletel <mvyletel mzm cz> Sponsored by: Google SoC 2007 |
#
89c40e5f |
|
05-Apr-2007 |
Alexander Kabaev <kan@FreeBSD.org> |
Be more conservative and compile libkern/memset.c only on architectures than need it. These are i386, amd64 and powerpc so far. |
#
2c298b17 |
|
17-Dec-2006 |
Matt Jacob <mjacob@FreeBSD.org> |
opt_ah.h ends up copied into a kernelcompile directory in some aches as a read-only file. In a number of cases this has led to compiles failing- usually due to some strange NFS drift which thinks that the opt_ah.h in the compile directory is out of date wrt the source it is copied from. When the copy is executed again, it fails because the target is read-only. Oops. Modify the compile hooks avoid this. Discussed with a while back with: Sam Leffler |
#
41849009 |
|
13-Nov-2006 |
John Baldwin <jhb@FreeBSD.org> |
MD support for PCI Message Signalled Interrupts on amd64 and i386: - Add a new apic_alloc_vectors() method to the local APIC support code to allocate N contiguous IDT vectors (aligned on a M >= N boundary). This function is used to allocate IDT vectors for a group of MSI messages. - Add MSI and MSI-X PICs. The PIC code here provides methods to manage edge-triggered MSI messages as x86 interrupt sources. In addition to the PIC methods, msi.c also includes methods to allocate and release MSI and MSI-X messages. For x86, we allow for up to 128 different MSI IRQs starting at IRQ 256 (IRQs 0-15 are reserved for ISA IRQs, 16-254 for APIC PCI IRQs, and IRQ 255 is reserved). - Add pcib_(alloc|release)_msi[x]() methods to the MD x86 PCI bridge drivers to bubble the request up to the nexus driver. - Add pcib_(alloc|release)_msi[x]() methods to the x86 nexus drivers that ask the MSI PIC code to allocate resources and IDT vectors. MFC after: 2 months |
#
3680a419 |
|
29-Oct-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
Backout the linux aio stuff. Several problems where identified and the dynamic nature (if no native aio code is available, the linux part returns ENOSYS because of missing requisites) should be solved differently than it is. All this will be done in P4. Not included in this commit is a backout of the changes to the native aio code (removing static in some places). Those changes (and some more) will also be needed when the reworked linux aio stuff will reenter the tree. Requested by: rwatson Discussed with: rwatson |
#
837f167e |
|
23-Oct-2006 |
Ruslan Ermilov <ru@FreeBSD.org> |
Move "device splash" back to MI NOTES and "files", it's MI. |
#
663cf7fe |
|
23-Oct-2006 |
Ruslan Ermilov <ru@FreeBSD.org> |
Move MI parts of syscons into MI "files". |
#
6a1162d4 |
|
15-Oct-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
MFP4 (with some minor changes): Implement the linux_io_* syscalls (AIO). They are only enabled if the native AIO code is available (either compiled in to the kernel or as a module) at the time the functions are used. If the AIO stuff is not available there will be a ENOSYS. From the submitter: ---snip--- DESIGN NOTES: 1. Linux permits a process to own multiple AIO queues (distinguished by "context"), but FreeBSD creates only one single AIO queue per process. My code maintains a request queue (STAILQ of queue(3)) per "context", and throws all AIO requests of all contexts owned by a process into the single FreeBSD per-process AIO queue. When the process calls io_destroy(2), io_getevents(2), io_submit(2) and io_cancel(2), my code can pick out requests owned by the specified context from the single FreeBSD per-process AIO queue according to the per-context request queues maintained by my code. 2. The request queue maintained by my code stores contrast information between Linux IO control blocks (struct linux_iocb) and FreeBSD IO control blocks (struct aiocb). FreeBSD IO control block actually exists in userland memory space, required by FreeBSD native aio_XXXXXX(2). 3. It is quite troubling that the function io_getevents() of libaio-0.3.105 needs to use Linux-specific "struct aio_ring", which is a partial mirror of context in user space. I would rather take the address of context in kernel as the context ID, but the io_getevents() of libaio forces me to take the address of the "ring" in user space as the context ID. To my surprise, one comment line in the file "io_getevents.c" of libaio-0.3.105 reads: Ben will hate me for this REFERENCE: 1. Linux kernel source code: http://www.kernel.org/pub/linux/kernel/v2.6/ (include/linux/aio_abi.h, fs/aio.c) 2. Linux manual pages: http://www.kernel.org/pub/linux/docs/manpages/ (io_setup(2), io_destroy(2), io_getevents(2), io_submit(2), io_cancel(2)) 3. Linux Scalability Effort: http://lse.sourceforge.net/io/aio.html The design notes: http://lse.sourceforge.net/io/aionotes.txt 4. The package libaio, both source and binary: http://rpmfind.net/linux/rpm2html/search.php?query=libaio Simple transparent interface to Linux AIO system calls. 5. Libaio-oracle: http://oss.oracle.com/projects/libaio-oracle/ POSIX AIO implementation based on Linux AIO system calls (depending on libaio). ---snip--- Submitted by: Li, Xiao <intron@intron.ac> |
#
d72a0786 |
|
22-Sep-2006 |
John Baldwin <jhb@FreeBSD.org> |
Update the ipmi(4) driver: - Split out the communication protocols into their own files and use a couple of function pointers in the softc that the commuication protocols setup in their own attach routine. - Add support for the SSIF interface (talking to IPMI over SMBus). - Add an ACPI attachment. - Add a PCI attachment that attaches to devices with the IPMI interface subclass. - Split the ISA attachment out into its own file: ipmi_isa.c. - Change the code to probe the SMBIOS table for an IPMI entry to just use pmap_mapbios() to map the table in rather than trying to setup a fake resource on an isa device and then activating the resource to map in the table. - Make bus attachments leaner by adding attach functions for each communication interface (ipmi_kcs_attach(), ipmi_smic_attach(), etc.) that setup per-interface data. - Formalize the model used by the driver to handle requests by adding an explicit struct ipmi_request object that holds the state of a given request and reply for the entire lifetime of the request. By bundling the request into an object, it is easier to add retry logic to the various communication backends (as well as eventually support BT mode which uses a slightly different message format than KCS, SMIC, and SSIF). - Add a per-softc lock and remove D_NEEDGIANT as the driver is now MPSAFE. - Add 32-bit compatibility ioctl shims so you can use a 32-bit ipmitool on FreeBSD/amd64. - Add ipmi(4) to i386 and amd64 NOTES. Submitted by: ambrisko (large portions of 2 and 3) Sponsored by: IronPort Systems, Yahoo! MFC after: 6 days |
#
f031f0c0 |
|
05-Sep-2006 |
Eric Anholt <anholt@FreeBSD.org> |
Include agp_i810.c in amd64 AGP builds to get support for the Intel 915 Express chipsets. PR: kern/93676 Submitted by: Jan Blaha <Jan.Blaha@unet.cz> MFC after: 1 week |
#
9b44bfc5 |
|
14-Aug-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
Add the linux 2.6.x stuff (not used by default!): - TLS - complete - pid/tid mangling - complete - thread area - complete - futexes - complete with issues - clone() extension - complete with some possible minor issues - mq*/timer*/clock* stuff - complete but untested and the mq* stuff is disabled when not build as part of the kernel with native FreeBSD mq* support (module support for this will come later) Tested with: - linux-firefox - works, tested - linux-opera - works, tested - linux-realplay - doesnt work, issue with futexes - linux-skype - doesnt work, issue with futexes - linux-rt2-demo - works, tested - linux-acroread - doesnt work, unknown reason (coredump) and sometimes issue with futexes - various unix utilities in linux-base-gentoo3 and linux-base-fc4: everything tried worked On amd64 not everything is supported like on i386, the catchup is planned for later when the remaining bugs in the new functions are fixed. To test this new stuff, you have to run sysctl compat.linux.osrelease=2.6.16 to switch back use sysctl compat.linux.osrelease=2.4.2 Don't switch while running a linux program, strange things may or may not happen. Sponsored by: Google SoC 2006 Submitted by: rdivacky Some suggestions/help by: jhb, kib, manu@NetBSD.org, netchild |
#
302981e7 |
|
29-Jul-2006 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Remove sio(4) and related options from MI files to amd64, i386 and pc98 MD files. Remove nodevice and nooption lines specific to sio(4) from ia64, powerpc and sparc64 NOTES. There were no such lines for arm yet. sio(4) is usable on less than half the platforms, not counting a future mips platform. Its presence in MI files is therefore increasingly becoming a burden. |
#
bfc788c2 |
|
26-Jun-2006 |
David E. O'Brien <obrien@FreeBSD.org> |
Add a pure open source nForce Ethernet driver, under BSDL. This driver was ported from OpenBSD by Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp> and posted at http://www.se.hiroshima-u.ac.jp/~shigeaki/software/freebsd-nfe.html It was additionally cleaned up by me. It is still a work-in-progress and thus is purposefully not in GENERIC. And it conflicts with nve(4), so only one should be loaded. |
#
741367d5 |
|
18-May-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add in a bunch of things to the mfi driver: - Linux ioctl support, with the other Linux changes MegaCli will run if you mount linprocfs & linsysfs then set sysctl compat.linux.osrelease=2.6.12 or similar. This works on i386. It should work on amd64 but not well tested yet. StoreLib may or may not work. Remember to kldload mfi_linux. - Add in AEN (Async Event Notification) support so we can get messages from the firmware when something happens. Not all messages are in defined in event detail. Use event_log to try to figure out what happened. - Try to implement something like SIGIO for StoreLib. Since mrmonitor doesn't work right I can't fully test it. StoreLib works best with the rh9 base. In theory mrmonitor isn't needed due to native driver support of AEN :-) Now we can configure and monitor the RAID better. Submitted by: IronPort Systems. |
#
32397ce0 |
|
09-May-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add in linsysfs. A linux 2.6 like sys filesystem to pacify the Linux LSI MegaRAID SAS utility. Sponsored by: IronPort Systems Man page help from: brueffer |
#
f4eb4717 |
|
07-May-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
- change the example of compiling only specific modules to not contain the linux module, since it is not cross-platform - move linprocfs from "files" and "options" to architecture specific files, since it only makes sense to build this for those architectures, where we also have a linuxolator - disable the build of the linuxolator on our tier-2 architecture "Alpha": * we don't have a linux_base port which supports Alpha and at the same time is not outdated/obsoleted upstream/in a good condition/ currently working * the upcomming new default linux base port is based upon Fedora Core 3 (security support via http://www.fedoralegacy.org), which isn't available for Alpha (like the current default linux base port which is based upon Red Hat 8) * nobody answered my request for testing it ~1 month ago on current@ and alpha@ (it doesn't surprises me, see above) * a SoC student wouldn't have to waste time on something which nobody is willing to test This does not remove the alpha specific MD files of the linuxolator yet. Discussed on: arch (mostly silence) Spiritual support by: scottl |
#
27aafcda |
|
27-Apr-2006 |
Scott Long <scottl@FreeBSD.org> |
Enable the rr232x driver for amd64. |
#
cea4d875 |
|
24-Apr-2006 |
Marcel Moolenaar <marcel@FreeBSD.org> |
o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front- end for isa(4). o Add a seperate bus frontend for acpi(4) and allow ISA DMA for it when ISA is configured in the kernel. This allows acpi(4) attachments in non-ISA configurations, as is possible for ia64. o Add a seperate bus frontend for pci(4) and detect known single port parallel cards. o Merge PC98 specific changes under pc98/cbus into the MI driver. The changes are minor enough for conditional compilation and in this form invites better abstraction. o Have ppc(4) usabled on all platforms, now that ISA specifics are untangled enough. |
#
c0345a84 |
|
20-Apr-2006 |
Peter Wemm <peter@FreeBSD.org> |
Introduce minidumps. Full physical memory crash dumps are still available via the debug.minidump sysctl and tunable. Traditional dumps store all physical memory. This was once a good thing when machines had a maximum of 64M of ram and 1GB of kvm. These days, machines often have many gigabytes of ram and a smaller amount of kvm. libkvm+kgdb don't have a way to access physical ram that is not mapped into kvm at the time of the crash dump, so the extra ram being dumped is mostly wasted. Minidumps invert the process. Instead of dumping physical memory in in order to guarantee that all of kvm's backing is dumped, minidumps instead dump only memory that is actively mapped into kvm. amd64 has a direct map region that things like UMA use. Obviously we cannot dump all of the direct map region because that is effectively an old style all-physical-memory dump. Instead, introduce a bitmap and two helper routines (dump_add_page(pa) and dump_drop_page(pa)) that allow certain critical direct map pages to be included in the dump. uma_machdep.c's allocator is the intended consumer. Dumps are a custom format. At the very beginning of the file is a header, then a copy of the message buffer, then the bitmap of pages present in the dump, then the final level of the kvm page table trees (2MB mappings are expanded into a 4K page mappings), then the sparse physical pages according to the bitmap. libkvm can now conveniently access the kvm page table entries. Booting my test 8GB machine, forcing it into ddb and forcing a dump leads to a 48MB minidump. While this is a best case, I expect minidumps to be in the 100MB-500MB range. Obviously, never larger than physical memory of course. minidumps are on by default. It would want be necessary to turn them off if it was necessary to debug corrupt kernel page table management as that would mess up minidumps as well. Both minidumps and regular dumps are supported on the same machine. |
#
8d96e455 |
|
05-Mar-2006 |
Yaroslav Tykhiy <ytykhiy@gmail.com> |
Retire NETSMBCRYPTO as a kernel option and make its functionality enabled by default in NETSMB and smbfs.ko. With the most of modern SMB providers requiring encryption by default, there is little sense left in keeping the crypto part of NETSMB optional at the build time. This will also return smbfs.ko to its former properties users are rather accustomed to. Discussed with: freebsd-stable, re (scottl) Not objected by: bp, tjr (silence) MFC after: 5 days |
#
1c204a57 |
|
13-Feb-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Tie the ipmi driver into the i386/amd64 builds. |
#
084500bc |
|
24-Jan-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add in the Linux IOCTL shim and create the megadev0 device so Linux LSI MegaRaid tools can run on FreeBSD until Linux emulation. Add in the Linux IOCTL shim and create the megadev0 device so Linux LSI MegaRaid tools can run on FreeBSD until Linux emulation. Add glue to build the modules but don't tie it into the build yet until I test it from the CVS repo. via the mirror on an amd64 machine. Tie this into the Linux32 emulation on amd64 so the tools can run on amd64 kernel. Cleaned up by: ps (amr_linux.c) |
#
848c454c |
|
07-Dec-2005 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add BPF Just-In-Time compiler support for ng_bpf(4). The sysctl is changed from net.bpf.jitter.enable to net.bpf_jitter.enable and this controls both bpf(4) and ng_bpf(4) now. |
#
ae275efc |
|
05-Dec-2005 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add experimental BPF Just-In-Time compiler for amd64 and i386. Use the following kernel configuration option to enable: options BPF_JITTER If you want to use bpf_filter() instead (e. g., debugging), do: sysctl net.bpf.jitter.enable=0 to turn it off. Currently BIOCSETWF and bpf_mtap2() are unsupported, and bpf_mtap() is partially supported because 1) no need, 2) avoid expensive m_copydata(9). Obtained from: WinPcap 3.1 (for i386) |
#
a8e06f2a |
|
27-Nov-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Make config(8) understand ORed dependecies in "files*" and improve tracking of known devices. Bump config(8) version. |
#
6d8200ff |
|
11-Nov-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Add /dev/speaker support to amd64. The following repo-copies were made (by Mark Murray): sys/i386/isa/spkr.c -> sys/dev/speaker/spkr.c sys/i386/include/speaker.h -> sys/dev/speaker/speaker.h share/man/man4/man4.i386/spkr.4 -> share/man/man4/spkr.4 |
#
dc8540a9 |
|
07-Sep-2005 |
Scott Long <scottl@FreeBSD.org> |
Hook up the hptmv driver for amd64. MFC After: 3 days |
#
4bf21bfe |
|
21-Jul-2005 |
Peter Wemm <peter@FreeBSD.org> |
MFi386: add vpd driver (vital product data.. model & serial numbers etc) |
#
6ec29713 |
|
21-Jul-2005 |
Peter Wemm <peter@FreeBSD.org> |
Add the ed driver for lint building. The PCI instances are still useful. In theory, there are no isa slots on any amd64/em64t systems, but it doesn't hurt to keep these tiny fragments compiling. |
#
a52daa5f |
|
20-Jul-2005 |
Jung-uk Kim <jkim@FreeBSD.org> |
Fix smbios(4) and add support for amd64 Approved by: anholt (mentor) |
#
712de323 |
|
18-Jul-2005 |
Paul Saab <ps@FreeBSD.org> |
Build p4tcc and est cpu frequency modules on amd64. Reviewed by: njl |
#
62919d78 |
|
30-Jun-2005 |
Peter Wemm <peter@FreeBSD.org> |
Jumbo-commit to enhance 32 bit application support on 64 bit kernels. This is good enough to be able to run a RELENG_4 gdb binary against a RELENG_4 application, along with various other tools (eg: 4.x gcore). We use this at work. ia32_reg.[ch]: handle the 32 bit register file format, used by ptrace, procfs and core dumps. procfs_*regs.c: vary the format of proc/XXX/*regs depending on the client and target application. procfs_map.c: Don't print a 64 bit value to 32 bit consumers, or their sscanf fails. They expect an unsigned long. imgact_elf.c: produce a valid 32 bit coredump for 32 bit apps. sys_process.c: handle 32 bit consumers debugging 32 bit targets. Note that 64 bit consumers can still debug 32 bit targets. IA64 has got stubs for ia32_reg.c. Known limitations: a 5.x/6.x gdb uses get/setcontext(), which isn't implemented in the 32/64 wrapper yet. We also make a tiny patch to gdb pacify it over conflicting formats of ld-elf.so.1. Approved by: re |
#
80a11093 |
|
29-Jun-2005 |
Peter Wemm <peter@FreeBSD.org> |
Sync i386->amd64. * Add ichwd (The Intel EM64T folks have an ICH) * Cosmetic comment syncs * Merge cpufreq change over to NOTES * add pbio (it compiles, but isn't useful since no boxes have ISA slots) * copy ath settings (note: wlan disabled here since its in global NOTES) * copy profiling, including fixing a previous i386->amd64 merge typo. Approved by: re (blanket i386 <-> amd64 sync/convergence) |
#
b29a2e68 |
|
13-Jun-2005 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Include the puc(4) bus frontend for ppc(4) when both ppc and puc are configured. PR: kern/80737 Submitted by: David Taylor < davidt-fbsd at yadt dot co dot uk > Approved by: re (scottl) MFC after: 5 days |
#
b16d349f |
|
11-Jun-2005 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Refactor the NETSMBCRYPTO option so that it does the same on all platforms. ARM is excluded as it doesn't yet have any crypto sources. Approved by: re (dwhite) MFC after: 1 day |
#
520b6353 |
|
10-Jun-2005 |
Marius Strobl <marius@FreeBSD.org> |
- Hook up the new locations of the atkbdc(4), atkbd(4) and psm(4) source files after they were repo-copied to sys/dev/atkbdc. The sources of atkbdc(4) and its children were moved to the new location in preparation for adding an EBus front-end to atkbdc(4) for use on sparc64; i.e. in order to not further scatter them over the whole tree which would have been the result of adding atkbdc_ebus.c in e.g. sys/sparc64/ebus. Another reason for the repo-copies was that some of the sources were misfiled, e.g. sys/isa/atkbd_isa.c wasn't ISA-specific at all but for hanging atkbd(4) off of atkbdc(4) and was renamed to atkbd_atkbdc.c accordingly. Most of sys/isa/psm.c, i.e. expect for its PSMC PNP part, also isn't ISA-specific. - Separate the parts of atkbdc_isa.c which aren't actually ISA-specific but are shareable between different atkbdc(4) bus front-ends into atkbdc_subr.c (repo-copied from atkbdc_isa.c). While here use bus_generic_rl_alloc_resource() and bus_generic_rl_release_resource() respectively in atkbdc_isa.c instead of rolling own versions. - Add sparc64 MD bits to atkbdc(4) and atkbd(4) and an EBus front-end for atkbdc(4). PS/2 controllers and input devices are used on a couple of Sun OEM boards and occur on either the EBus or the ISA bus. Depending on the board it's either the only on-board mean to connect a keyboard and mouse or an alternative to either RS232 or USB devices. - Wrap the PSMC PNP part of psm.c in #ifdef DEV_ISA so it can be compiled without isa(4) (e.g. for EBus-only machines). This ISA-specific part isn't separated into its own source file, yet, as it requires more work than was feasible for 6.0 in order to do it in a clean way. Actually philip@ is working on a rewrite of psm(4) so a more comprehensive clean-up and separation of hardware dependent and independent parts is expected to happen after 6.0. Tested on: i386, sparc64 (AX1105, AXe and AXi boards) Reviewed by: philip |
#
f263522a |
|
09-Jun-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
MFP4: - Implement sampling modes and logging support in hwpmc(4). - Separate MI and MD parts of hwpmc(4) and allow sharing of PMC implementations across different architectures. Add support for P4 (EMT64) style PMCs to the amd64 code. - New pmcstat(8) options: -E (exit time counts) -W (counts every context switch), -R (print log file). - pmc(3) API changes, improve our ability to keep ABI compatibility in the future. Add more 'alias' names for commonly used events. - bug fixes & documentation. |
#
9fa98e70 |
|
28-Apr-2005 |
Scott Long <scottl@FreeBSD.org> |
Update the file.* entries for the new home of hwpmc |
#
96b50ea3 |
|
24-Apr-2005 |
Bill Paul <wpaul@FreeBSD.org> |
Throw the switch on the new driver generation/loading mechanism. From here on in, if_ndis.ko will be pre-built as a module, and can be built into a static kernel (though it's not part of GENERIC). Drivers are created using the new ndisgen(8) script, which uses ndiscvt(8) under the covers, along with a few other tools. The result is a driver module that can be kldloaded into the kernel. A driver with foo.inf and foo.sys files will be converted into foo_sys.ko (and foo_sys.o, for those who want/need to make static kernels). This module contains all of the necessary info from the .INF file and the driver binary image, converted into an ELF module. You can kldload this module (or add it to /boot/loader.conf) to have it loaded automatically. Any required firmware files can be bundled into the module as well (or converted/loaded separately). Also, add a workaround for a problem in NdisMSleep(). During system bootstrap (cold == 1), msleep() always returns 0 without actually sleeping. The Intel 2200BG driver uses NdisMSleep() to wait for the NIC's firmware to come to life, and fails to load if NdisMSleep() doesn't actually delay. As a workaround, if msleep() (and hence ndis_thsuspend()) returns 0, use a hard DELAY() to sleep instead). This is not really the right thing to do, but we can't really do much else. At the very least, this makes the Intel driver happy. There are probably other drivers that fail in this way during bootstrap. Unfortunately, the only workaround for those is to avoid pre-loading them and kldload them once the system is running instead. |
#
108311ba |
|
22-Apr-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Clean generated os+%DIKED-nve.h. |
#
ebccf1e3 |
|
18-Apr-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Bring a working snapshot of hwpmc(4), its associated libraries, userland utilities and documentation into -CURRENT. Bump FreeBSD_version. Reviewed by: alc, jhb (kernel changes) |
#
c6a37e84 |
|
04-Apr-2005 |
John Baldwin <jhb@FreeBSD.org> |
Divorce critical sections from spinlocks. Critical sections as denoted by critical_enter() and critical_exit() are now solely a mechanism for deferring kernel preemptions. They no longer have any affect on interrupts. This means that standalone critical sections are now very cheap as they are simply unlocked integer increments and decrements for the common case. Spin mutexes now use a separate KPI implemented in MD code: spinlock_enter() and spinlock_exit(). This KPI is responsible for providing whatever MD guarantees are needed to ensure that a thread holding a spin lock won't be preempted by any other code that will try to lock the same lock. For now all archs continue to block interrupts in a "spinlock section" as they did formerly in all critical sections. Note that I've also taken this opportunity to push a few things into MD code rather than MI. For example, critical_fork_exit() no longer exists. Instead, MD code ensures that new threads have the correct state when they are created. Also, we no longer try to fixup the idlethreads for APs in MI code. Instead, each arch sets the initial curthread and adjusts the state of the idle thread it borrows in order to perform the initial context switch. This change is largely a big NOP, but the cleaner separation it provides will allow for more efficient alternative locking schemes in other parts of the kernel (bare critical sections rather than per-CPU spin mutexes for per-CPU data for example). Reviewed by: grehan, cognet, arch@, others Tested on: i386, alpha, sparc64, powerpc, arm, possibly more |
#
5ec8c336 |
|
01-Apr-2005 |
Scott Long <scottl@FreeBSD.org> |
FIx a botch with the addition of the arcmsr driver. |
#
d0885ac3 |
|
31-Mar-2005 |
Scott Long <scottl@FreeBSD.org> |
Glue the arcmsr driver into the tree. |
#
bc4c8712 |
|
27-Mar-2005 |
Nate Lawson <njl@FreeBSD.org> |
Add powernow to kernel build target. |
#
1b1a07ad |
|
11-Mar-2005 |
David E. O'Brien <obrien@FreeBSD.org> |
FreeBSD consumer bits of the nForce MCP NIC binary blob. Demanded by: DES Encouraged by: scottl Obtained from: q@onthenet.com.au (partially) KNF'ed by: obrien |
#
63ba67b6 |
|
24-Feb-2005 |
Bill Paul <wpaul@FreeBSD.org> |
- Correct one aspect of the driver_object/device_object/IRP framework: when we create a PDO, the driver_object associated with it is that of the parent driver, not the driver we're trying to attach. For example, if we attach a PCI device, the PDO we pass to the NdisAddDevice() function should contain a pointer to fake_pci_driver, not to the NDIS driver itself. For PCI or PCMCIA devices this doesn't matter because the child never needs to talk to the parent bus driver, but for USB, the child needs to be able to send IRPs to the parent USB bus driver, and for that to work the parent USB bus driver has to be hung off the PDO. This involves modifying windrv_lookup() so that we can search for bus drivers by name, if necessary. Our fake bus drivers attach themselves as "PCI Bus," "PCCARD Bus" and "USB Bus," so we can search for them using those names. The individual attachment stubs now create and attach PDOs to the parent bus drivers instead of hanging them off the NDIS driver's object, and in if_ndis.c, we now search for the correct driver object depending on the bus type, and use that to find the correct PDO. With this fix, I can get my sample USB ethernet driver to deliver an IRP to my fake parent USB bus driver's dispatch routines. - Add stub modules for USB support: subr_usbd.c, usbd_var.h and if_ndis_usb.c. The subr_usbd.c module is hooked up the build but currently doesn't do very much. It provides the stub USB parent driver object and a dispatch routine for IRM_MJ_INTERNAL_DEVICE_CONTROL. The only exported function at the moment is USBD_GetUSBDIVersion(). The if_ndis_usb.c stub compiles, but is not hooked up to the build yet. I'm putting these here so I can keep them under source code control as I flesh them out. |
#
d8f2dda7 |
|
15-Feb-2005 |
Bill Paul <wpaul@FreeBSD.org> |
Add support for Windows/x86-64 binaries to Project Evil. Ville-Pertti Keinonen (will at exomi dot comohmygodnospampleasekthx) deserves a big thanks for submitting initial patches to make it work. I have mangled his contributions appropriately. The main gotcha with Windows/x86-64 is that Microsoft uses a different calling convention than everyone else. The standard ABI requires using 6 registers for argument passing, with other arguments on the stack. Microsoft uses only 4 registers, and requires the caller to leave room on the stack for the register arguments incase the callee needs to spill them. Unlike x86, where Microsoft uses a mix of _cdecl, _stdcall and _fastcall, all routines on Windows/x86-64 uses the same convention. This unfortunately means that all the functions we export to the driver require an intermediate translation wrapper. Similarly, we have to wrap all calls back into the driver binary itself. The original patches provided macros to wrap every single routine at compile time, providing a secondary jump table with a customized wrapper for each exported routine. I decided to use a different approach: the call wrapper for each function is created from a template at runtime, and the routine to jump to is patched into the wrapper as it is created. The subr_pe module has been modified to patch in the wrapped function instead of the original. (On x86, the wrapping routine is a no-op.) There are some minor API differences that had to be accounted for: - KeAcquireSpinLock() is a real function on amd64, not a macro wrapper around KfAcquireSpinLock() - NdisFreeBuffer() is actually IoFreeMdl(). I had to change the whole NDIS_BUFFER API a bit to accomodate this. Bugs fixed along the way: - IoAllocateMdl() always returned NULL - kern_windrv.c:windrv_unload() wasn't releasing private driver object extensions correctly (found thanks to memguard) This has only been tested with the driver for the Broadcom 802.11g chipset, which was the only Windows/x86-64 driver I could find. |
#
f91067a3 |
|
20-Dec-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Protect the NM expansion. |
#
939000cf |
|
20-Dec-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Fix a mis-sort. |
#
1556fbfc |
|
14-Dec-2004 |
Peter Wemm <peter@FreeBSD.org> |
Add config hooks for amd64 atheros hal modules |
#
685e7002 |
|
22-Nov-2004 |
Warner Losh <imp@FreeBSD.org> |
It appears that 'kbd' device has never been used and isn't needed. Build tests show that this isn't used for GENERIC or LINT, and nobody seemed to know why they existed. |
#
932fc0bc |
|
28-Sep-2004 |
Mark Murray <markm@FreeBSD.org> |
Be consistant; make the memrange bit be part of the mem module like i386. |
#
21691935 |
|
23-Sep-2004 |
Peter Wemm <peter@FreeBSD.org> |
Converge towards i386. I originally resisted creating <machine/pc/bios.h> because it was mostly irrelevant - except for the silly BIOS_PADDRTOVADDR etc macros. Along the way of working around this, I missed a few things. * Make syscons properly inherit the bios capslock/shiftlock/etc state like i386 does. Note that we cannot inherit the bios key repeat rate because that requires a bios call (which is impossible for us). * Give syscons the ability to beep on amd64. Oops. While here, make bios.c compile and add it to files.amd64. |
#
5fe155d0 |
|
30-Aug-2004 |
Peter Wemm <peter@FreeBSD.org> |
Add the mp_watchdog hooks, although it locks up my SMP test box. It might be useable to somebody. |
#
7a071c6a |
|
15-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Complete 'IA32' -> 'COMPAT_IA32' change for the Linuxulator32. |
#
3c749e3f |
|
15-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
AMD64 on-CPU GART support. This also applies to AMD64 HW running 'i386' OS. Submitted by: Jung-uk Kim <jkim@niksun.com> Integration by: obrien |
#
ea0fabbc |
|
16-Aug-2004 |
Tim J. Robbins <tjr@FreeBSD.org> |
Add preliminary support for running 32-bit Linux binaries on amd64, enabled with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32 binary emulation work. Some of this is still a little rough around the edges, and will need to be revisited before 32-bit and 64-bit Linux emulation support can coexist in the same kernel. |
#
29fe871d |
|
04-Aug-2004 |
Mark Murray <markm@FreeBSD.org> |
Oops. Didn't commit this as part of the mem module fix. |
#
8ab2f5ec |
|
01-Aug-2004 |
Mark Murray <markm@FreeBSD.org> |
Break out the MI part of the /dev/[k]mem and /dev/io drivers into their own directory and module, leaving the MD parts in the MD area (the MD parts _are_ part of the modules). /dev/mem and /dev/io are now loadable modules, thus taking us one step further towards a kernel created entirely out of modules. Of course, there is nothing preventing the kernel from having these statically compiled. |
#
32cfa665 |
|
15-Jul-2004 |
Nate Lawson <njl@FreeBSD.org> |
Hook up fdc_acpi for the kernel build. |
#
5971a234 |
|
10-Jul-2004 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Hook the GDB backend into the build. |
#
01a8e5a9 |
|
08-Jul-2004 |
Warner Losh <imp@FreeBSD.org> |
Fix mismerge of fdc. Also, OLDCARD never was supported on amd64, so remove fdc attachment for it. |
#
8ade021a |
|
07-Jul-2004 |
Warner Losh <imp@FreeBSD.org> |
Break out the isa and pccard front ends to the fdc controller device. This should allow us to more easily break out the acpi and 'legacy pc' front ends as well (so only the bus front end would touch rtc, for example). This isn't a great separation, since isa dma routines are still called from the MI code, but it is a start. |
#
f1ca765c |
|
30-Jun-2004 |
Nate Lawson <njl@FreeBSD.org> |
Move acpi_if.m to files.{amd64,i386,ia64}. This should fix the alpha build. Pointed out by: gallatin |
#
003d5d66 |
|
23-May-2004 |
Bruce Evans <bde@FreeBSD.org> |
Fixed profiling of trap, syscall and interrupt handlers and some ordinary functions, essentially by backing out half of rev.1.115 of amd64/exception.S. The handlers must be between certain labels for the purposes of profiling, and this was broken by scattering them in separately compiled .S files, especially for ordinary functions that ended up between the labels. Merge the files by #including them as before, except with different pathnames and better comments and organization. Changes to the scattered files are minimal -- just move the labels to the file that does the #includes. This also partly fixes profiling of IPIs -- all IPI handlers are now correctly classified as interrupt handlers, but many are still missing mcount calls. |
#
a51bebab |
|
24-May-2004 |
Bruce Evans <bde@FreeBSD.org> |
Fixed insertion sort error in previous commit (prof_machdep.c). Fixed apparently-intentional disorder of the crypto files. Lists of files should be sorted first on the pathname, not on the option name or subsystem. |
#
478fee28 |
|
23-May-2004 |
Bruce Evans <bde@FreeBSD.org> |
Build prof_machdep.c if profiling. Kernel profiling for amd64's (normal and high resolution) should now compile and work as (un)well as on i386's. It works better than user profiling because: - it uses _cyg_profile_func_*() instead of .mcount(), so it doesn't suffer from gcc misspelling .mcount as mcount. - it doesn't neglect saving %rax in .mcount(). The SMP case hasn't been tested. The high resolution subcase of this uses the i8254, and as on i386's, the locking for this is deficient and the i8254 is too inefficient. The acpi timer is also too inefficient. |
#
6cd91141 |
|
16-May-2004 |
Warner Losh <imp@FreeBSD.org> |
Move fdc from isa/fd.c to dev/fdc/fdc.c. The old files were repocopied. Soon there will be additional bus attachments and specialization for isa, acpi and pccard (and maybe pc98's cbus). This was approved by nate, joerg and myself. bde dissented on the new location, but appeared to be OK after some discussion. |
#
463e5aa6 |
|
16-May-2004 |
Peter Wemm <peter@FreeBSD.org> |
MFi386: numerous interrupt and acpi updates |
#
4d6bcc83 |
|
16-May-2004 |
Peter Wemm <peter@FreeBSD.org> |
Enable first part of kld's on amd64. This is known to not work right yet, but building kld's is OK now and they can be loaded by kldload(2). (but the machine will likely crash soon afterwards, a "minor" problem :-) Brought to you by: my injured knee (from moving) |
#
0b1d4202 |
|
23-Apr-2004 |
Tim J. Robbins <tjr@FreeBSD.org> |
Add files required for the NETSMBCRYPTO option. |
#
33d13796 |
|
20-Mar-2004 |
Alan Cox <alc@FreeBSD.org> |
Introduce uiomove_fromphys(). This is a variant of uiomove() that takes a collection of physical pages as the source. On amd64 it is implemented using the direct virtual-to-physical map. |
#
54262acd |
|
03-Mar-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Add rules for font.h atkbdmap.h ukbdmap.h so more of LINT can be built. |
#
db41012c |
|
04-Feb-2004 |
Peter Wemm <peter@FreeBSD.org> |
Add crypto implemenation files (C versions (like alpha, unlike i386)) |
#
f11e46c5 |
|
10-Dec-2003 |
Peter Wemm <peter@FreeBSD.org> |
Move the ia32_sigtramp.S file back under amd64/. This interfaces closely with the sendsig code in the MD area. It is not safe to assume that all the register conventions will be the same. Also, the way of producing 32 bit code (.code32 directives) in this file is amd64 specific. |
#
0d2a2989 |
|
17-Nov-2003 |
Peter Wemm <peter@FreeBSD.org> |
Initial landing of SMP support for FreeBSD/amd64. - This is heavily derived from John Baldwin's apic/pci cleanup on i386. - I have completely rewritten or drastically cleaned up some other parts. (in particular, bootstrap) - This is still a WIP. It seems that there are some highly bogus bioses on nVidia nForce3-150 boards. I can't stress how broken these boards are. I have a workaround in mind, but right now the Asus SK8N is broken. The Gigabyte K8NPro (nVidia based) is also mind-numbingly hosed. - Most of my testing has been with SCHED_ULE. SCHED_4BSD works. - the apic and acpi components are 'standard'. - If you have an nVidia nForce3-150 board, you are stuck with 'device atpic' in addition, because they somehow managed to forget to connect the 8254 timer to the apic, even though its in the same silicon! ARGH! This directly violates the ACPI spec. |
#
0432a0f9 |
|
07-Nov-2003 |
Peter Wemm <peter@FreeBSD.org> |
Rename npx.c to fpu.c (it isn't an extension, its part of the core architecture now). |
#
7fb57893 |
|
13-Oct-2003 |
Alan Cox <alc@FreeBSD.org> |
MFia64 Move uma_small_alloc() and uma_small_free() to uma_machdep.c. |
#
2bec1c89 |
|
06-Sep-2003 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Hook-up the uart(4) driver to the build. For a detailed description of what uart(4) is and/or is not see the initial commit log of one of the files in sys/dev/uart (or see share/man/man4/uart.4). Note that currently pc98 shares the MD file with i386. This needs to change when pc98 support is fleshed-out to properly support the various UARTs. A good example is sparc64 in this respect. We build uart(4) as a module on all platforms. This may break the ppc port. That depends on whether they do actually build modules. To use uart(4) on alpha, one must use the NO_SIO option. |
#
4872a3d7 |
|
22-Aug-2003 |
Peter Wemm <peter@FreeBSD.org> |
Turn on the MTRR driver. |
#
401004db |
|
22-Aug-2003 |
Peter Wemm <peter@FreeBSD.org> |
Complete the switch to the common 32 bit support code. |
#
11dc7df1 |
|
03-Aug-2003 |
Warner Losh <imp@FreeBSD.org> |
fix disordering of filenames. Place the dev/ppc files in alphabetical order. |
#
a3732274 |
|
31-Jul-2003 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add printer support to puc(4) driver. - Move isa/ppc* to sys/dev/ppc (repo-copy) - Add an attachment method to ppc for puc - In puc we need to walk the chain of parents. Still to do, is to make ppc(4) & puc(4) work on other platforms. Testers wanted. PR: 38372 (in spirit done differently) Verified by: Make universe (if I messed up a platform please fix) |
#
1f5b79bc |
|
31-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Make this compile with WITNESS enabled. It wants the syscall names. |
#
ff7bf2f7 |
|
31-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Port acpica to amd64. Approved by: re (amd64/* blanket) |
#
ec2343a8 |
|
29-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Add ddb machdep bits. Approved by: re (amd64 bits) |
#
04ddc5de |
|
15-May-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Run $S/kern/genassym.sh with the correct NM. Approved by: re(blanket) |
#
d85631c4 |
|
13-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Add BASIC i386 binary support for the amd64 kernel. This is largely stolen from the ia64/ia32 code (indeed there was a repocopy), but I've redone the MD parts and added and fixed a few essential syscalls. It is sufficient to run i386 binaries like /bin/ls, /usr/bin/id (dynamic) and p4. The ia64 code has not implemented signal delivery, so I had to do that. Before you say it, yes, this does need to go in a common place. But we're in a freeze at the moment and I didn't want to risk breaking ia64. I will sort this out after the freeze so that the common code is in a common place. On the AMD64 side, this required adding segment selector context switch support and some other support infrastructure. The %fs/%gs etc code is hairy because loading %gs will clobber the kernel's current MSR_GSBASE setting. The segment selectors are not used by the kernel, so they're only changed at context switch time or when changing modes. This still needs to be optimized. Approved by: re (amd64/* blanket) |
#
7dca36c9 |
|
02-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Spell cpu_switch correctly. |
#
27828625 |
|
02-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Rename amd64/*.s to amd64/*.S |
#
b05deb9b |
|
30-Apr-2003 |
Peter Wemm <peter@FreeBSD.org> |
Sync up with the files in the hammer branch in the p4 tree to get basic AMD64 support. There is still more to add. |
#
5d1b6a85 |
|
28-Feb-2003 |
Ruslan Ermilov <ru@FreeBSD.org> |
Standardize handling of locore.[sS] etc. files. Submitted by: jake, bde, ru |
#
30b745b6 |
|
29-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove entries for files we don't have. Approved by: peter |
#
e263f030 |
|
28-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
NO_GEOM cleanup: remove subr_disklabel.c from powerpc and x86_64. |
#
6fb6c306 |
|
17-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove subr_diskslice.c and subr_diskmbr.c which I can see no traces off a need for in the x86_64 files. Not compile tested. |
#
2a2c7962 |
|
17-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move subr_disklabel.c and subr_diskslice.c from being MI to MD files, so that they can be left out where they are unneeded. |
#
5452db48 |
|
19-Aug-2002 |
Peter Wemm <peter@FreeBSD.org> |
de-count atkbdc and sc. Folks, remove the '1' from 'device sc 1' and 'device atkbdc 1'. |
#
ba268f03 |
|
23-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
Move sio_isa.c back to MD files files due to PC98 brain damage. |
#
bdff575a |
|
15-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
Move all the sio(4) attachments (except for pc98's cbus attachment) to the MI files file. We can't move sio.c because pc98 uses a custom version. |
#
47a3594e |
|
15-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
The puc(4) driver/bridge is MI, so don't bury it in MD options and files config files. It also depends on PCI. |
#
d2be885e |
|
30-Jun-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
This is the start of the FreeBSD/x86_64 kernel. |
#
1b10e191 |
|
28-Feb-2023 |
Stéphane Rochoy <stephane.rochoy@stormshield.eu> |
superio,ftgpio: Add support for Fintek F81865 GPIO Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/674 Differential Revision: https://reviews.freebsd.org/D37893
|
#
8923de59 |
|
13-Feb-2023 |
Piotr Kubaj <pkubaj@FreeBSD.org> |
ice(4): Update to 1.37.7-k Notable changes include: - DSCP QoS Support (leveraging support added in rG9c950139051298831ce19d01ea5fb33ec6ea7f89) - Improved PFC handling and TC queue assignments (now all remaining queues are assigned to TC 0 when more than one TC is enabled and the number of available queues does not evenly divide between them) - Support for dumping the internal FW state for additional debugging by Intel support - Support for allowing "No FEC" to be a valid state for the LESM to negotiate when using non-standard compliant modules Also includes various bug fixes and smaller enhancements, too. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: erj@ Tested by: Jeff Pieper <jeffrey.pieper@intel.com> MFC after: 3 days Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D38109
|
#
5bb807fe |
|
05-Feb-2023 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: record a dependency of vdso on its linker script Reviewed by: emaste, val_packett.cool Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D38392
|
#
9c067b84 |
|
27-Jan-2023 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
enic: Cisco VIC driver This driver is based of the enic (Cisco VIC) DPDK driver. It provides basic ethernet functionality. Has been run with various VIC cards to do UEFI PXE boot with NFS root.
|
#
2508da22 |
|
24-Jan-2023 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update package to 1.3.30.0 This updated DDP is intended to be used with the forthcoming ice(4) driver update to 1.37.7-k. (But it will still work with the current version.) Co-authored-by: Piotr Kubaj <pkubaj@FreeBSD.org> Signed-off-by: Eric Joyner <erj@FreeBSD.org> MFC after: 1 week Sponsored by: Intel Corporation
|
#
99aeb219 |
|
03-Jan-2023 |
Takanori Watanabe <takawata@FreeBSD.org> |
wdatwd: Add support for ACPI WDAT based watchdog timer. Simply said, WDAT is an abstraction for the real WDT hardware. For instance, to add a newer generation WDT to ichwd(4), one must know the detailed hardware registers, etc.. With WDAT, the necessary IO accesses to operate the WDT are comprehensively described in it and no hardware knowledge is required. With this driver, the WDT on Advantech ARK-1124C, Dell R210 and Dell R240 are detected and operated flawlessly. * While R210 is also supported by ichwd(4), others are not supported yet. The unfortunate thing is that not all systems have WDAT defined. Submitted by: t_uemura at macome.co.jp Reviewed by: hrs Differential Revision: https://reviews.freebsd.org/D37493
|
#
d1aefbc0 |
|
23-Jun-2022 |
Martin Matuska <mm@FreeBSD.org> |
zfs: fix static module build broken in 1f1e2261e
|
#
8a13362d |
|
01-Dec-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Add RDMA Client Interface This allows the "irdma" driver to communicate with the ice(4) driver to allow it access to the underlying device's hardware resources as well as synchronize access to shared resources. This interface already existed in the standalone out-of-tree 1.34.2 driver; this commit adds and enables it in the in-kernel driver. Note: Adds hack to module Makefile to compile interface/.m files These are required for the RDMA client interface, but they don't build as-is like the normal .c files. The source directory doesn't seem to be included by default, so add lines that specifically add them as libraries so that ice_rdma.h can be found and the interface files will compile. Signed-off-by: Eric Joyner <erj@FreeBSD.org> MFC after: 1 week Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D30889
|
#
56429dae |
|
04-Mar-2022 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Update to 1.34.2-k - Adds FW logging support - Once enabled, this lets the firmware print event and error messages to the log, increasing the visibility into what the hardware is doing; this is useful for debugging - General bug fixes - Adds inital DCB support to the driver - Notably, this adds support for DCBX to the driver; now with the fw_lldp sysctl set to 1, the driver and adapter will adopt a DCBX configuration sent from a link partner - Adds statistcs sysctls for priority flow control frames - Adds new configuration sysctls for DCB-related features: (VLAN) user priority to TC mapping; ETS bandwidth allocation; priority flow control - Remove unused SR-IOV files (until support gets added) Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: jeffrey.e.pieper@intel.com MFC after: 3 days MFC with: 213e91399b, e438f0a975 Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D34024
|
#
e438f0a9 |
|
01-Dec-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update to 1.3.27.0 This is intended to be used with forthcoming ice(4) driver version 1.34.2. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation
|
#
c2705cea |
|
09-Jan-2022 |
Colin Percival <cperciva@FreeBSD.org> |
x86: Speed up clock calibration Prior to this commit, the TSC and local APIC frequencies were calibrated at boot time by measuring the clocks before and after a one-second sleep. This was simple and effective, but had the disadvantage of *requiring a one-second sleep*. Rather than making two clock measurements (before and after sleeping) we now perform many measurements; and rather than simply subtracting the starting count from the ending count, we calculate a best-fit regression between the target clock and the reference clock (for which the current best available timecounter is used). While we do this, we keep track of an estimate of the uncertainty in the regression slope (aka. the ratio of clock speeds), and stop measuring when we believe the uncertainty is less than 1 PPM. In order to avoid the risk of aliasing resulting from the data-gathering loop synchronizing with (a multiple of) the frequency of the reference clock, we add some additional spinning depending upon the iteration number. For numerical stability and simplicity of implementation, we make use of floating-point arithmetic for the statistical calculations. On the author's Dell laptop, this reduces the time spent in calibration from 2000 ms to 29 ms; on an EC2 c5.xlarge instance, it is reduced from 2000 ms to 2.5 ms. Reviewed by: bde (previous version), kib MFC after: 1 month Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D33802
|
#
169b368a |
|
06-Dec-2021 |
Jessica Clarke <jrtc27@FreeBSD.org> |
amd64: Pass DEBUG when building VDSO wrapper Not doing so results in ctfconvert failing with ERROR: ctfconvert: elf-vdso.so.o doesn't have type data to convert On FreeBSD this is non-fatal, since the ctf tools have a hack to make such errors not fail the build and instead just silently continue without CTF data (which is a bad idea these days and should probably be removed; they date back to the original import). However, those are under #ifdef __FreeBSD__ so do not apply when cross-building from non-FreeBSD, causing the build to fail. Fix this by forwarding DEBUG on to the compiler invocation for the VDSO wrapper. It's assembly so it's not hugely useful, but there is a non-zero amount of information preserved, and other assembly files are built with -g by default too so this matches them; the alternative would be to tag the files.amd64 entries with no-ctfmerge. Note that the VDSO itself is still compiled without debug info, this only affects the wrapper linked into the kernel. Fixes: 98c8b6252496 ("vdso for ia32 on amd64"), ab4524b3d7fb ("amd64: wrap 64bit sigtramp into vdso") MFC after: 1 month
|
#
d49b75d0 |
|
30-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Enforce that vdso does not contain runtime relocations Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D32960
|
#
98c8b625 |
|
13-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
vdso for ia32 on amd64 Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D32960
|
#
ab4524b3 |
|
05-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: wrap 64bit sigtramp into vdso Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D32960
|
#
ca853dee |
|
12-Feb-2021 |
Eric Joyner <erj@FreeBSD.org> |
iavf(4): Split source and update to 3.0.26-k The iavf(4) driver now uses a different source base from ixl(4), since it will be the standard VF driver for new Intel Ethernet products going forward, including ice(4). It continues to use the iflib framework for network drivers. Since it now uses a different source code base, this commit adds a new sys/dev/iavf entry, but it re-uses the existing module name so no configuration changes are necessary. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: kbowling@ Tested by: lukasz.szczepaniak@intel.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D28636
|
#
ecbbe831 |
|
24-Nov-2021 |
Mark Johnston <markj@FreeBSD.org> |
netinet: Deduplicate most in_cksum() implementations in_cksum() and related routines are implemented separately for each platform, but only i386 and arm have optimized versions. Other platforms' copies of in_cksum.c are identical except for style differences and support for big-endian CPUs. Deduplicate the implementations for the rest of the platforms. This will make it easier to implement in_cksum() for unmapped mbufs. On arm and i386, define HAVE_MD_IN_CKSUM to mean that the MI implementation is not to be compiled. No functional change intended. Reviewed by: kp, glebius MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33095
|
#
197ff4c3 |
|
01-Nov-2021 |
Kornel Duleba <mindal@semihalf.com> |
ossl: Add support for AES-CBC cipher AES-CBC OpenSSL assembly is used underneath. The glue layer(ossl_aes.c) is based on CHACHA20 implementation. Contrary to the SHA and CHACHA20, AES OpenSSL assembly logic does not have a fallback implementation in case CPU doesn't support required instructions. Because of that CPU caps are checked during initialization and AES support is advertised only if available. The feature is available on all architectures that ossl supports: i386, amd64, arm64. The biggest advantage of this patch over existing solutions (aesni(4) and armv8crypto(4)) is that it supports SHA, allowing for ETA operations. Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: jhb (previous version) Differential revision: https://reviews.freebsd.org/D32099
|
#
200bc589 |
|
06-Nov-2021 |
Wojciech Macek <wma@FreeBSD.org> |
Revert "ossl: Add support for AES-CBC cipher" This reverts commit 849faf4e0ba9a8b8f24ff34da93a0fd46c14eda9.
|
#
849faf4e |
|
01-Nov-2021 |
Kornel Duleba <mindal@semihalf.com> |
ossl: Add support for AES-CBC cipher AES-CBC OpenSSL assembly is used underneath. The glue layer(ossl_aes.c) is based on CHACHA20 implementation. Contrary to the SHA and CHACHA20, AES OpenSSL assembly logic does not have a fallback implementation in case CPU doesn't support required instructions. Because of that CPU caps are checked during initialization and AES support is advertised only if available. The feature is available on all architectures that ossl supports: i386, amd64, arm64. The biggest advantage of this patch over existing solutions (aesni(4) and armv8crypto(4)) is that it supports SHA, allowing for ETA operations. Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: jhb Differential revision: https://reviews.freebsd.org/D32099
|
#
cf0ee873 |
|
12-Sep-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Drop cloudabi According to https://github.com/NuxiNL/cloudlibc: CloudABI is no longer being maintained. It was an awesome experiment, but it never got enough traction to be sustainable. There is no reason to keep it in FreeBSD. Approved by: ed (private mail) Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D31923
|
#
12ca33f4 |
|
13-Sep-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: move signal handling and register structures manipulations into exec_machdep.c from machdep.c which is too large pile of unrelated things. Some ptrace functions are moved from machdep.c to ptrace_machdep.c. Now machdep.c contains code mostly related to the low level initialization and regular low level operation of the architecture, while signal MD code and registers handling is placed in exec_machdep.c. Reviewed by: jhb, markj Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31954
|
#
2b6eec53 |
|
12-Sep-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
x86: duplicate acpi_wakeup.c per i386 and amd64 The file as is is the maze of #ifdef passages, all slightly different. Divorcing i386 and amd64 version actually makes changing the code easier, also no changes for i386 are planned. Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D31931
|
#
7af4475a |
|
02-Sep-2021 |
Alexander Motin <mav@FreeBSD.org> |
vmd(4): Major driver refactoring - Re-implement pcib interface to use standard pci bus driver on top of vmd(4) instead of custom one. - Re-implement memory/bus resource allocation to properly handle even complicated configurations. - Re-implement interrupt handling to evenly distribute children's MSI/ MSI-X interrupts between available vmd(4) MSI-X vectors and setup them to be handled by standard OS mechanisms with minimal overhead, except sharing when unavoidable. Successfully tested on Dell XPS 13 laptop with Core i7-1185G7 CPU (VMD device ID 0x9a0b) and single NVMe SSD, dual-booting with Windows 10. Successfully tested on Supermicro X11DPI-NT motherboard with Xeon(R) Gold 6242R CPUs (VMD device ID 0x201d), simultaneously handling NVMe SSD on one PCIe port and PLX bridge with 3 NVMe and 1 AHCI SSDs on another. Handles SSD hot-plug (except Optane 905p for some reason, which are not detected until manual bus rescan) and enabled IOMMU (directly connected SSDs work, but ones connected to the PLX fail without errors from IOMMU). MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential revision: https://reviews.freebsd.org/D31762
|
#
3706af42 |
|
29-Jun-2021 |
Arnaud Ysmal <arnaud.ysmal@stormshield.eu> |
Add support for Lewisburg GPIO through P2SB Obtained from: Semihalf Sponsored by: Stormshield Differential revision: https://reviews.freebsd.org/D31269
|
#
469884cf |
|
31-Jul-2021 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
LinuxKPI: Make FPU sections thread-safe and use the NOCTX flag. Reviewed by: kib Submitted by: greg@unrelenting.technology Differential Revision: https://reviews.freebsd.org/D29921 MFC after: 1 week Sponsored by: NVIDIA Networking
|
#
538ef055 |
|
25-Jun-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update to 1.3.24.0 This version is intended to be used with the 0.29.4 version of the ice(4) driver, which will be be committed afterwards. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: stallamr_netapp.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D30887
|
#
e013e369 |
|
21-Jun-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Get rid of Linuxulator kernel build options. Stop confusing people, retire COMPAT_LINUX and COMPAT_LINUX32 kernel build options. Since we have 32 and 64 bit Linux emulators, we can't build both emulators together into the kernel. I don't think it matters, Linux emulation depends on loadable modules (via rc). Cut LINPROCFS and LINSYSFS for consistency. PR: 215061 Reviewed by: bcr (manpages), trasz Differential Revision: https://reviews.freebsd.org/D30751 MFC after: 2 weeks
|
#
ac3ede53 |
|
11-May-2021 |
Roger Pau Monné <royger@FreeBSD.org> |
x86/xen: remove PVHv1 code PVHv1 was officially removed from Xen in 4.9, so just axe the related code from FreeBSD. Note FreeBSD supports PVHv2, which is the replacement for PVHv1. Sponsored by: Citrix Systems R&D Reviewed by: kib, Elliott Mitchell Differential Revision: https://reviews.freebsd.org/D30228
|
#
aa3ea612 |
|
31-Mar-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
x86: remove gcov kernel support Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D29529
|
#
d08b8680 |
|
22-Feb-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Update to version 0.28.1-k This updates the driver to align with the version included in the "Intel Ethernet Adapter Complete Driver Pack", version 25.6. There are no major functional changes; this mostly contains bug fixes and changes to prepare for new features. This version of the driver uses the previously committed ice_ddp package 1.3.19.0. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: jeffrey.e.pieper@intel.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D28640
|
#
92aecd1e |
|
03-Mar-2021 |
John Baldwin <jhb@FreeBSD.org> |
ossl: Add ChaCha20 cipher support. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D28756
|
#
a079e38b |
|
03-Mar-2021 |
John Baldwin <jhb@FreeBSD.org> |
ossl: Add Poly1305 digest support. Reviewed by: cem Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D28754
|
#
a7ac518b |
|
22-Feb-2021 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update package file to 1.3.19.0 This package is intended to be used with ice(4) version 0.28.1-k. That update will happen in a forthcoming commit. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation
|
#
5fa12fe0 |
|
20-Feb-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: implement strlen in assembly, take 2 Tested with glibc test suite. The C variant in libkern performs excessive branching to find the zero byte instead of using the bsfq instruction. The same code patched to use it is still slower than the routine implemented here as the compiler keeps neglecting to perform certain optimizations (like using leaq). On top of that the routine can be used as a starting point for copyinstr which operates on words intead of bytes. The previous attempt had an instance of swapped operands to andq when dealing with fully aligned case, which had a side effect of breaking the code for certain corner cases. Noted by jrtc27. Sample results: $(perl -e "print 'A' x 3"): stock: 211198039 patched:338626619 asm: 465609618 $(perl -e "print 'A' x 100"): stock: 83151997 patched: 98285919 asm: 120719888 Reviewed by: jhb, kib Differential Revision: https://reviews.freebsd.org/D28779
|
#
b49a0db6 |
|
09-Feb-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
Revert "amd64: implement strlen in assembly" This reverts commit af366d353b84bdc4e730f0fc563853abc338271c. Trips over '\xa4' byte and terminates early, as found in lib/libc/gen/setdomainname_test:setdomainname_basic testcase However, keep moving libkern/strlen.c out of conf/files. Reported by: lwhsu
|
#
bfc99943 |
|
25-Jan-2021 |
Brooks Davis <brooks@one-eyed-alien.net> |
ndis(4): remove as previous announced nids(4) was a clever idea in the early 2000's when the market was flooded with 10/100 NICs with Windows-only drivers, but that hasn't been the case for ages and the driver has had no meaningful maintenance in ages. It only supports Windows-XP era drivers. Also remove: - ndis support from wpa_supplicant - ndiscvt(8) Reviewed By: emaste, bcr (manpages) Differential Revision: https://reviews.freebsd.org/D27609
|
#
94611a83 |
|
14-Jan-2021 |
Andrew Turner <andrew@FreeBSD.org> |
Add missing no-ctfconvert to C generation rules Stop running ctfconvert over generated C files in the kernel by marking them with no-ctfconvert. This fixes warnings from ctfconvert trying to parse C files: ctfconvert: file.c: Couldn't read ehdr: Invalid argument Reviewed by: emaste, mmel Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D28156
|
#
11d62b6f |
|
11-Jan-2021 |
Emmanuel Vadot <manu@FreeBSD.org> |
linuxkpi: add kernel_fpu_begin/kernel_fpu_end With newer AMD GPUs (>=Navi,Renoir) there is FPU context usage in the amdgpu driver. The `kernel_fpu_begin/end` implementations in drm did not even allow nested begin-end blocks. Submitted by: Greg V Reviewed By: manu, hselasky Differential Revision: https://reviews.freebsd.org/D28061
|
#
c4df8cbf |
|
23-Dec-2020 |
Robert Wing <rew@FreeBSD.org> |
Remove bvmconsole and bvmdebug. Now that bhyve(8) supports UART, bvmconsole and bvmdebug are no longer needed. This also removes the '-b' and '-g' flag from bhyve(8). These two flags were marked deprecated in r368519. Reviewed by: grehan, kevans Approved by: kevans (mentor) Differential Revision: https://reviews.freebsd.org/D27490
|
#
df4ca45c |
|
05-Dec-2020 |
Tijl Coosemans <tijl@FreeBSD.org> |
Fix i386 linux module after r367395. In r367395 parts of machine dependent linux_dummy.c were moved to a new machine independent file sys/compat/linux/linux_dummy.c and the existing linux_dummy.c was renamed to linux_dummy_machdep.c. Add linux_dummy_machdep.c to the linux module for i386. Rename sys/amd64/linux32/linux_dummy.c for consistency. Add the new linux_dummy.c to the linux module for i386.
|
#
2e58ec01 |
|
18-Nov-2020 |
Mark Johnston <markj@FreeBSD.org> |
Move kern_clocksource.c to sys/conf/files Sponsored by: The FreeBSD Foundation
|
#
e9b13c66 |
|
05-Nov-2020 |
Conrad Meyer <cem@FreeBSD.org> |
linux(4): Deduplicate unimpl/dummy syscall handlers No functional change. Reviewed by: emaste, trasz Differential Revision: https://reviews.freebsd.org/D27099
|
#
ba610be9 |
|
20-Oct-2020 |
John Baldwin <jhb@FreeBSD.org> |
Add a kernel crypto driver using assembly routines from OpenSSL. Currently, this supports SHA1 and SHA2-{224,256,384,512} both as plain hashes and in HMAC mode on both amd64 and i386. It uses the SHA intrinsics when present similar to aesni(4), but uses SSE/AVX instructions when they are not. Note that some files from OpenSSL that normally wrap the assembly routines have been adapted to export methods usable by 'struct auth_xform' as is used by existing software crypto routines. Reviewed by: gallatin, jkim, delphij, gnn Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D26821
|
#
acb4cf9d |
|
15-Oct-2020 |
Ed Maste <emaste@FreeBSD.org> |
move vmware pv drivers to sys/conf/files VMware now has arm64 support; move these to MI files in advance of building them on arm64. PR: 250308 Reported by: Vincent Milum Jr MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
7113afc8 |
|
11-Oct-2020 |
Emmanuel Vadot <manu@FreeBSD.org> |
10Gigabit Ethernet driver for AMD SoC This patch has the driver for 10Gigabit Ethernet controller in AMD SoC. This driver is written compatible to the Iflib framework. The existing driver is for the old version of hardware. The submitted driver here is for the recent versions of the hardware where the Ethernet controller is PCI-E based. Submitted by: Rajesh Kumar <rajesh1.kumar@amd.com> MFC after: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D25793
|
#
1bd641af |
|
04-Sep-2020 |
Eric Joyner <erj@FreeBSD.org> |
ice_ddp: Update package file to 1.3.16.0 This package is intended to be used with ice(4) version 0.26.16. That update will happen in a forthcoming commit. MFC after: 3 days Sponsored by: Intel Corporation
|
#
bd368728 |
|
30-Aug-2020 |
Marko Zec <zec@FreeBSD.org> |
Driver for 4x10Gb Ethernet reference NIC FPGA design for NetFPGA SUME development board. Submitted by: Denis Salopek <denis.salopek AT fer.hr> Reported by: zec, bz (src); rgrimes, bcr (manpages) MFC after: 7 days Sponsored by: Google Summer of Code 2020 Differential Revision: https://reviews.freebsd.org/D26074
|
#
9e5787d2 |
|
24-Aug-2020 |
Matt Macy <mmacy@FreeBSD.org> |
Merge OpenZFS support in to HEAD. The primary benefit is maintaining a completely shared code base with the community allowing FreeBSD to receive new features sooner and with less effort. I would advise against doing 'zpool upgrade' or creating indispensable pools using new features until this change has had a month+ to soak. Work on merging FreeBSD support in to what was at the time "ZFS on Linux" began in August 2018. I first publicly proposed transitioning FreeBSD to (new) OpenZFS on December 18th, 2018. FreeBSD support in OpenZFS was finally completed in December 2019. A CFT for downstreaming OpenZFS support in to FreeBSD was first issued on July 8th. All issues that were reported have been addressed or, for a couple of less critical matters there are pull requests in progress with OpenZFS. iXsystems has tested and dogfooded extensively internally. The TrueNAS 12 release is based on OpenZFS with some additional features that have not yet made it upstream. Improvements include: project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, various command line improvements, zstd compression. Thanks to those who have helped along the way: Ryan Moeller, Allan Jude, Zack Welch, and many others. Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D25872
|
#
b4a7ce06 |
|
09-Jun-2020 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Add FW recovery mode support and other things Update the iflib version of ixl driver based on the OOT version ixl-1.11.29. Major changes: - Extract iflib specific functions from ixl_pf_main.c to ixl_pf_iflib.c to simplify code sharing between legacy and iflib version of driver - Add support for most recent FW API version (1.10), which extends FW LLDP Agent control by user to X722 devices - Improve handling of device global reset - Add support for the FW recovery mode - Use virtchnl function to validate virtual channel messages instead of using separate checks - Fix MAC/VLAN filters accounting Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com> Reviewed by: erj@ Tested by: Jeffrey Pieper <jeffrey.e.pieper@intel.com> MFC after: 1 week Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D24564
|
#
71d10453 |
|
26-May-2020 |
Eric Joyner <erj@FreeBSD.org> |
ice(4): Introduce new driver for Intel E800 Ethernet controllers The ice(4) driver is the driver for the Intel E8xx series Ethernet controllers; currently with codenames Columbiaville and Columbia Park. These new controllers support 100G speeds, as well as introducing more queues, better virtualization support, and more offload capabilities. Future work will enable virtual functions (like in ixl(4)) and the other functionality outlined above. For full functionality, the kernel should be compiled with "device ice_ddp" like in the amd64 NOTES file, and/or ice_ddp_load="YES" should be added to /boot/loader.conf so that the DDP package file included in this commit can be downloaded to the adapter. Otherwise, the adapter will fall back to a single queue mode with limited functionality. A man page for this driver will be forthcoming. MFC after: 1 month Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D21959
|
#
0e00c709 |
|
11-May-2020 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for DES and Triple DES from OCF. It no longer has any in-kernel consumers via OCF. smbfs still uses single DES directly, so sys/crypto/des remains for that use case. Reviewed by: cem Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24773
|
#
32075647 |
|
11-May-2020 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for the Blowfish algorithm from OCF. It no longer has any in-kernel consumers. Reviewed by: cem Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24772
|
#
265cef40 |
|
28-Apr-2020 |
Bryan Drewery <bdrewery@FreeBSD.org> |
Don't try ctfconvert on file without debug info. This was currently an ignored error but will change to a hard error eventually. Differential Revision: https://reviews.freebsd.org/D24536
|
#
4db3ef4c |
|
17-Apr-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
More fixes to build the kernel with a compiler that defaults to -fno-common Using the same approach as the last commit for the files used by genassym.sh. Obtained from: CheriBSD
|
#
f953e731 |
|
17-Apr-2020 |
Conrad Meyer <cem@FreeBSD.org> |
xen-locore: Silence DWARF2 section warning Silence the "DWARF2 can only represent one section per compilation unit" warning in amd64 GENERIC builds by disabling Clang's debuginfo generation for this assembler file (-g0). The message is replaced by a warning from ctfconvert that there is no debuginfo to convert (future work). The file contains some metadata (several ELF notes) and some code. The code does not appear to have anything that debuginfo would aid. I looked at the generated debuginfo (readelf -w xen-locore.o) prior to this change, and the metadata that would be disabled are things like associated between binary offset and code line number (not especially useful with a disassembler), and label metadata for the entry points (not especially useful as this is already in the symbol table). Reviewed by: royger Differential Revision: https://reviews.freebsd.org/D24384
|
#
bb9c7e26 |
|
02-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Move font.h generation to conf/files from conf/files.* Use ${SRCTOP} instead of /usr/share. Prefer to depend on option sc_dflt_fnt instead of sc. gc the 4 otherwise identical instances in the tree. Platforms that don't need this won't included it.
|
#
e17b7f1a |
|
02-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Fix old-style build Fix the old-style build by using ${SRCTOP} instead of a weird construct that only works for new-style build. Simplify the building of keymap files by using macros Move atkbdmap.h in files.x86 This has been broken since r296899 which removed the implicit dependency on /usr/share.
|
#
f6d5b31f |
|
01-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Revert r357349, since the clang 10.0.0 warning was actually correct, and the ! operator should have been a ~ instead: Merge r357348 from the clang 10.0.0 import branch: Disable new clang 10.0.0 warnings about converting the result of shift operations to a boolean in tpm(4): sys/dev/tpm/tpm_crb.c:301:32: error: converting the result of '<<' to a boolean; did you mean '(1 << (0)) != 0'? [-Werror,-Wint-in-bool-context] WR4(sc, TPM_CRB_CTRL_CANCEL, !TPM_CRB_CTRL_CANCEL_CMD); ^ sys/dev/tpm/tpm_crb.c:73:34: note: expanded from macro 'TPM_CRB_CTRL_CANCEL_CMD' #define TPM_CRB_CTRL_CANCEL_CMD BIT(0) ^ sys/dev/tpm/tpm20.h:60:19: note: expanded from macro 'BIT' #define BIT(x) (1 << (x)) ^ Such warnings can be useful in C++ contexts, but not so much in kernel drivers, where this type of bit twiddling is commonplace. So disable it for this case. Noticed by: cem MFC after: 3 days
|
#
0a51af91 |
|
31-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Disable new clang 10.0.0 warnings about converting the result of shift operations to a boolean in tpm(4): sys/dev/tpm/tpm_crb.c:301:32: error: converting the result of '<<' to a boolean; did you mean '(1 << (0)) != 0'? [-Werror,-Wint-in-bool-context] WR4(sc, TPM_CRB_CTRL_CANCEL, !TPM_CRB_CTRL_CANCEL_CMD); ^ sys/dev/tpm/tpm_crb.c:73:34: note: expanded from macro 'TPM_CRB_CTRL_CANCEL_CMD' #define TPM_CRB_CTRL_CANCEL_CMD BIT(0) ^ sys/dev/tpm/tpm20.h:60:19: note: expanded from macro 'BIT' #define BIT(x) (1 << (x)) ^ Such warnings can be useful in C++ contexts, but not so much in kernel drivers, where this type of bit twiddling is commonplace. So disable it for this case. MFC after: 3 days
|
#
71f00776 |
|
20-Nov-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Remove sio(4). It had been disconnected from build in r181233 in 2008. Reviewed by: imp
|
#
052e12a5 |
|
14-Nov-2019 |
Josh Paetzel <jpaetzel@FreeBSD.org> |
Add the pvscsi driver to the tree. This driver allows to usage of the paravirt SCSI controller in VMware products like ESXi. The pvscsi driver provides a substantial performance improvement in block devices versus the emulated mpt and mps SCSI/SAS controllers. Error handling in this driver has not been extensively tested yet. Submitted by: vbhakta@vmware.com Relnotes: yes Sponsored by: VMware, Panzura Differential Revision: D18613
|
#
2a4300e9 |
|
30-Oct-2019 |
Warner Losh <imp@FreeBSD.org> |
Move all the sys/dev/[a-j]* that are common to files.x86 All these device entries are common between the two files. Move them to files.x86. Also sort entries from this range into proper order in files.amd64.
|
#
d0c0856f |
|
10-Oct-2019 |
Andriy Gapon <avg@FreeBSD.org> |
emulate illumos membar_producer with atomic_thread_fence_rel membar_producer is supposed to be a store-store barrier. Also, in the code that FreeBSD has ported from illumos membar_producer is used only with regular stores to regular memory (with respect to caching). We do not have an MI primitive for the store-store barrier, so atomic_thread_fence_rel is the closest we have as it provides (load | store) -> store barrier. Previously, membar_producer was an empty function call on all 32-bit arm-s, 32-bit powerpc, riscv and all mips variants. I think that it was inadequate. On other platforms, such as amd64, arm64, i386, powerpc64, sparc64, membar_producer was implemented using stronger primitives than required for a store-store barrier with respect to regular memory access. For example, it used sfence on amd64 and lock-ed nop in i386 (despite TSO). On powerpc64 we now use recommended lwsync instead of eieio. On sparc64 FreeBSD uses TSO mode. On arm64/aarch64 we now use dmb sy instead of dmb ish. Not sure if this is an improvement, actually. After this change we can drop opensolaris_atomic.S for aarch64, amd64, powerpc64 and sparc64 as all required atomic operations have either direct or light-weight mapping to FreeBSD native atomic operations. Discussed with: kib MFC after: 4 weeks
|
#
f2521a76 |
|
09-Oct-2019 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
This driver attaches to the Intel VMD drive and connects a new PCI domain starting at the max. domain, and then work down. Then existing FreeBSD drivers will attach. Interrupt routing from the VMD MSI-X to the NVME drive is not well known, so any interrupt is sent to all children that register. VROC used Intel meta data so graid(8) works with it. However, graid(8) supports RAID 0,1,10 for read and write. I have some early code to support writes with RAID 5. Note that RAID 5 can have life issues with SSDs since it can cause write amplification from updating the parity data. Hot plug support needs a change to skip the following check to work: if (pcib_request_feature(dev, PCI_FEATURE_HP) != 0) { in sys/dev/pci/pci_pci.c. Looked at by: imp, rpokala, bcr Differential Revision: https://reviews.freebsd.org/D21383
|
#
7d65d420 |
|
25-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Fix bogusly declared WERRORs in kernel build Many arm kernel configs bogusly specified WERROR=-Werror. There's no reason for this because the default is that and there's no reason to override. These date from a time when we needed to add additional warning->error suppression. They are obsolete and were cut and paste propagated from file to file. Comment out all the WERROR=.... lines in powerpc. They aren't bogus, but were appropriate for the old defaults for gcc4.2.1. Now that we've made the policy decision to suppress -Werror by default on these platforms, it is appropriate to comment these out. People wishing to fix these errors can still un-comment them out, or say WERROR=-Werror on the command line. Fix two instances (cut and paste propagation) of hard-coded -Werror in x86 code. Replace with ${WERROR} instead. This is a no-op change except for people who build WERROR=-Wno-error :). This should fix tinderbox / CI breakage.
|
#
96f556f5 |
|
16-Aug-2019 |
Alexander Motin <mav@FreeBSD.org> |
NTB Tool: Test driver for NTB hardware drivers. NTB Tool driver is meant for testing NTB hardware driver functionalities, such as doorbell interrupts, link events, scratchpad registers and memory windows. This is a port of ntb_tool driver from Linux. It has been verified on top of AMD and PLX NTB HW drivers. Submitted by: Arpan Palit <arpan.palit@amd.com> Cleaned up by: mav MFC after: 2 weeks Relnotes: yes Differential Revision: https://reviews.freebsd.org/D18819
|
#
041f5b36 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move the common x86 ipmi files to files.x86. The powerpc file list is different enough that unification will have to wait for the next pass. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
b38e67c9 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
The x86 part of hwpmc is shared, so move it to files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
ff45348b |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Windows ndis support is x86 only. Move the MI parts there. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
cfb592fa |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Intel's isci is part of the chipset, so it is x86 specific. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
43602a9c |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move hyperv to files.x86 Move the comomon part of hyperv to files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
ca46f711 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
The bxe driver, QLogic NetXtreme II Ethernet 10Gb PCIe adapter driver, is x86 specific, and only builds there. Likewise the module is built there. Move it to the x86-only files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
5f82f736 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
The ACPI parts are identical between i386 and amd64 Apart from one MD file, ACPI is a x86 implementation, not specific to either i386 or amd64, so put it into files.x86. Other architectures include fewer files for the same options, so it can't move into the MI files file. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
439fd246 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move via padlock files to files.x86. VIA Padlock support is for VIA C3, C7 and Eden processors, which are 64bit x86 processors. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
807e7867 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Apart from one MD file, aesni is common to x86. Move it into files.x86. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
e80d8265 |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move all the hp* drivers too files.x86 The HPT drivers are all x86 only. Move them to files.x86. Because of the way we run uudecode, we can use $M instead of needing entries for them in separate files. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
286b4bed |
|
14-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Move the identical x86 lines to files.x86 Move all the identical x86 lines to files.x86. The non-identical ones should be unified and moved as well, but that would require additional changes that would need a more careful review and may not be MFCable, so I'll do them separately. I'll delete the mildly snarky comment when things are unified. Reviewed by: jhb (verbal OK on irc) Differential Revision: https://reviews.freebsd.org/D21248
|
#
3b4afdbe |
|
13-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
nvme has been moved to 'files' so shouldn't be here anymore. It works on powerpc64 and arm64 these days as well as amd64/i386.
|
#
b6fcc3a4 |
|
13-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
ed(4) has been removed from the tree, but these were forgotten in r347911.
|
#
09813007 |
|
12-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
ukbdmap.h rule was identical on all platforms, so move them into sys/conf/files. This allows us to remove 'nodevice ukbd' from the arm64 NOTES file.
|
#
9246a83c |
|
12-Aug-2019 |
Warner Losh <imp@FreeBSD.org> |
Create files.x86 files.x86 is for the parts of the system that are common to both i386 and amd64 due too their nature. First up, to get the ball rolling, is fdc, the floppy disk support. It works only on amd64 and i386 these days, and that's unlikely to change. Reviewed by: jhb, cem (earlier versrions) Differential Revision: https://reviews.freebsd.org/D21210
|
#
305b9efe |
|
30-Jul-2019 |
Ed Maste <emaste@FreeBSD.org> |
linuxulator: rename linux_locore.s to .asm It is assembled using "${CC} -x assembler-with-cpp", which by convention (bsd.suffixes.mk) uses the .asm extension. This is a portion of the review referenced below (D18344). That review also renamed linux_support.s to .S, but that is a functional change (using the compiler's integrated assembler instead of as) and will be revisited separately. MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18344
|
#
d4565741 |
|
29-Jul-2019 |
Xin LI <delphij@FreeBSD.org> |
Remove gzip'ed a.out support. The current implementation of gzipped a.out support was based on a very old version of InfoZIP which ships with an ancient modified version of zlib, and was removed from the GENERIC kernel in 1999 when we moved to an ELF world. PR: 205822 Reviewed by: imp, kib, emaste, Yoshihiro Ota <ota at j.email.ne.jp> Relnotes: yes Differential Revision: https://reviews.freebsd.org/D21099
|
#
6683132d |
|
01-Jul-2019 |
Alexander Motin <mav@FreeBSD.org> |
Add driver for NTB in AMD SoC. This patch is the driver for NTB hardware in AMD SoCs (ported from Linux) and enables the NTB infrastructure like Doorbells, Scratchpads and Memory window in AMD SoC. This driver has been validated using ntb_transport and if_ntb driver already available in FreeBSD. Submitted by: Rajesh Kumar <rajesh1.kumar@amd.com> MFC after: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D18774
|
#
e3722b78 |
|
01-Jul-2019 |
Andriy Gapon <avg@FreeBSD.org> |
add superio driver The goal of this driver is consolidate information about SuperIO chips and to provide for peaceful coexistence of drivers that need to access SuperIO configuration registers. While SuperIO chips can host various functions most of them are discoverable and accessible without any knowledge of the SuperIO. Examples are: keyboard and mouse controllers, UARTs, floppy disk controllers. SuperIO-s also provide non-standard functions such as GPIO, watchdog timers and hardware monitoring. Such functions do require drivers with a knowledge of a specific SuperIO. At this time the driver supports a number of ITE and Nuvoton (fka Winbond) SuperIO chips. There is a single driver for all devices. So, I have not done the usual split between the hardware driver and the bus functionality. Although, superio does act as a bus for devices that represent known non-standard functions of a SuperIO chip. The bus provides enumeration of child devices based on the hardcoded knowledge of such functions. The knowledge as extracted from datasheets and other drivers. As there is a single driver, I have not defined a kobj interface for it. So, its interface is currently made of simple functions. I think that we can the flexibility (and complications) when we actually need it. I am planning to convert nctgpio and wbwd to superio bus very soon. Also, I am working on itwd driver (watchdog in ITE SuperIO-s). Additionally, there is ithwm driver based on the reverted sensors import, but I am not sure how to integrate it given that we still lack any sensors interface. Discussed with: imp, jhb MFC after: 7 weeks Differential Revision: https://reviews.freebsd.org/D8175
|
#
c0c317d2 |
|
26-Jun-2019 |
Alexander Motin <mav@FreeBSD.org> |
Fix qlxgbe(4) static build. MFC after: 2 weeks
|
#
5ca5dfe9 |
|
31-May-2019 |
Conrad Meyer <cem@FreeBSD.org> |
random(4): Fix RANDOM_LOADABLE build I introduced an obvious compiler error in r346282, so this change fixes that. Unfortunately, RANDOM_LOADABLE isn't covered by our existing tinderbox, and it seems like there were existing latent linking problems. I believe these were introduced on accident in r338324 during reduction of the boolean expression(s) adjacent to randomdev.c and hash.c. It seems the RANDOM_LOADABLE build breakage has gone unnoticed for nine months. This change correctly annotates randomdev.c and hash.c with !random_loadable to match the pre-r338324 logic; and additionally updates the HWRNG drivers in MD 'files.*', which depend on random_device symbols, with !random_loadable (it is invalid for the kernel to depend on symbols from a module). (The expression for both randomdev.c and hash.c was the same, prior to r338324: "optional random random_yarrow | random !random_yarrow !random_loadable". I.e., "random && (yarrow || !loadable)." When Yarrow was removed ("yarrow := False"), the expression was incorrectly reduced to "optional random" when it should have retained "random && !loadable".) Additionally, I discovered that virtio_random was missing a MODULE_DEPEND on random_device, which breaks kld load/link of the driver on RANDOM_LOADABLE kernels. Address that issue as well. PR: 238223 Reported by: Eir Nym <eirnym AT gmail.com> Reviewed by: delphij, markm Approved by: secteam(delphij) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D20466
|
#
7cff9f37 |
|
25-May-2019 |
Sean Eric Fagan <sef@FreeBSD.org> |
Add an AESNI-optimized version of the CCM/CBC cryptographic and authentication code. The primary client of this is probably going to be ZFS encryption. Reviewed by: jhb, cem Sponsored by: iXsystems Inc, Kithrup Enterprises Differential Revision: https://reviews.freebsd.org/D19298
|
#
61ebc359 |
|
21-Feb-2019 |
Bruce Evans <bde@FreeBSD.org> |
Move scterm_teken.c from 6 MD files lists to the MI files list so that it is easier to configure. It is MI, unlike some of the other syscons files already in the MI list. Move scvtb.c similarly. It is needed whenever sc is configured, and is more MI than most of the files already in the MI list. This only changes the combined list for arm64 and mips. These arches already cannot build sc or even NOTES.
|
#
a2d5ed94 |
|
14-Dec-2018 |
Marcin Wojtas <mw@FreeBSD.org> |
Introduce driver for TPM 2.0 in CRB and FIFO (TIS) modes It was written basing on: TCG PC Client Platform TPM Profile (PTP) Specification Version 22, Revision 1.03. It only supports Locality 0. Interrupts are only supported in FIFO mode. The driver in FIFO mode was tested on x86 with Infineon SLB9665 discrete TPM chip. Driver in both modes was also tested on qemu with swtpm running on host. Submitted by: Kornel Duleba <mindal@semihalf.com> Obtained from: Semihalf Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D18048
|
#
9417fa9e |
|
08-Dec-2018 |
Jayachandran C. <jchandra@FreeBSD.org> |
acpica : move SRAT/SLIT parsing to sys/dev/acpica This moves the architecture independent parts of sys/x86/acpica/srat.c to sys/dev/acpica/acpi_pxm.c, to be used later on arm64. The function declarations are moved to sys/dev/acpica/acpivar.h We also need to update sys/conf/files.{i386,amd64} to use the new file. No functional changes. Reviewed by: markj, imp Differential Revision: https://reviews.freebsd.org/D17941
|
#
391763d7 |
|
28-Nov-2018 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): add firmware image layout option Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18214
|
#
ae64ac93 |
|
26-Nov-2018 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): add Medford2 support to NIC module Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18142
|
#
fdbe38cf |
|
25-Nov-2018 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): add API to control UDP tunnel ports HW needs to know which UDP packets should be treated as tunnel encapsulation to do inner packet recognition, classification and offloads. Submitted by: Ivan Malov <ivan.malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18134
|
#
6bc6a542 |
|
31-Oct-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Add pci_early function to detect Intel stolen memory. On some Intel devices BIOS does not properly reserve memory (called "stolen memory") for the GPU. If the stolen memory is claimed by the OS, functions that depend on stolen memory (like frame buffer compression) can't be used. A function called pci_early_quirks that is called before the virtual memory system is started was added. In Linux, this PCI early quirks function iterates through all PCI slots to check for any device that require quirks. While this more generic solution is preferable I only ported the Intel graphics specific parts because I think my implementation would be too similar to Linux GPL'd solution after looking at the Linux code too much. The code regarding Intel graphics stolen memory was ported from Linux. In the case of Intel graphics stolen memory this pci_early_quirks will read the stolen memory base and size from north bridge registers. The values are stored in global variables that is later read by linuxkpi_gplv2. Linuxkpi stores these values in a Linux-specific structure that is read by the drm driver. Relevant linuxkpi code is here: https://github.com/FreeBSDDesktop/kms-drm/blob/drm-v4.16/linuxkpi/gplv2/src/linux_compat.c#L37 For now, only amd64 arch is suppor ted since that is the only arch supported by the new drm drivers. I was told that Intel GPUs are always located on 0:2:0 so these values are hard coded for now. Note that the structure and early execution of the detection code is not required in its current form, but we expect that the code will be added shortly which fixes the potential BIOS bugs by reserving the stolen range in phys_avail[]. This must be done as early as possible to avoid conflicts with the potential usage of the memory in kernel. Submitted by: Johannes Lundberg <johalun0@gmail.com> Reviewed by: bwidawsk, imp MFC after: 1 week Differential revision: https://reviews.freebsd.org/D16719 Differential revision: https://reviews.freebsd.org/D17775
|
#
8ce574de |
|
20-Oct-2018 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Add amdgpio, driver for GPIO controller on AMD-based x86_64 platforms Submitted by: Rajesh Kumar <rajbsd@gmail.com> Differential Revision: https://reviews.freebsd.org/D16865
|
#
3f74c027 |
|
15-Oct-2018 |
Eric Joyner <erj@FreeBSD.org> |
iavf(4): Finish rename/rebrand internally Rename functions and variables from ixlv to iavf to match the user-facing name change. There shouldn't be any functional changes with this change, but this may help with browsing the source code and reducing diffs in the future. Submitted by: kbowling@ Reviewed by: erj@, sbruno@ Approved by: re (gjb@) Differential Revision: https://reviews.freebsd.org/D17544
|
#
77c1fcec |
|
12-Oct-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl/iavf(4): Change ixlv to iavf and update it to use iflib(9) Finishes the conversion of the 40Gb Intel Ethernet drivers to iflib(9) for FreeBSD 12.0, and fixes numerous bugs in both ixl(4) and iavf(4). This commit also re-adds the VF driver to GENERIC since it now compiles and functions. The VF driver name was changed from ixlv(4) to iavf(4) because the VF driver is now intended to be used with future products, not just with Fortville/Fort Park VFs. A man page update that documents these drivers is forthcoming in a separate commit. Reviewed by: sbruno@, kbowling@ Tested by: jeffrey.e.pieper@intel.com Approved by: re (gjb@) Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D16429
|
#
50cd0be7 |
|
02-Sep-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Catch exceptions during EFI RT calls on amd64. This appeared to be required to have EFI RT support and EFI RTC enabled by default, because there are too many reports of faulting calls on many different machines. The knob is added to leave the exceptions unhandled to allow to debug the actual bugs. Reviewed by: kevans Sponsored by: The FreeBSD Foundation MFC after: 1 week Approved by: re (rgrimes) Differential revision: https://reviews.freebsd.org/D16972
|
#
97edfc1b |
|
13-Aug-2018 |
Mark Johnston <markj@FreeBSD.org> |
Implement kernel support for early loading of Intel microcode updates. Updates in the format described in section 9.11 of the Intel SDM can now be applied as one of the first steps in booting the kernel. Updates that are loaded this way are automatically re-applied upon exit from ACPI sleep states, in contrast with the existing cpucontrol(8)-based method. For the time being only Intel updates are supported. Microcode update files are passed to the kernel via loader(8). The file type must be "cpu_microcode" in order for the file to be recognized as a candidate microcode update. Updates for multiple CPU types may be concatenated together into a single file, in which case the kernel will select and apply a matching update. Memory used to store the update file will be freed back to the system once the update is applied, so this approach will not consume more memory than required. Reviewed by: kib MFC after: 6 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D16370
|
#
b3a7db3b |
|
29-Jul-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Use SMAP on amd64. Ifuncs selectors dispatch copyin(9) family to the suitable variant, to set rflags.AC around userspace access. Rflags.AC bit is cleared in all kernel entry points unconditionally even on machines not supporting SMAP. Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D13838
|
#
ccca101f |
|
03-Jul-2018 |
Bryan Drewery <bdrewery@FreeBSD.org> |
All genassym.sh usage need offset.inc
|
#
4dc1b29b |
|
02-Jul-2018 |
Matt Macy <mmacy@FreeBSD.org> |
ensure that offset.inc is generated before ia32_genassym.c is compiled
|
#
f4b36404 |
|
02-Jul-2018 |
Matt Macy <mmacy@FreeBSD.org> |
inline atomics and allow tied modules to inline locks - inline atomics in modules on i386 and amd64 (they were always inline on other arches) - allow modules to opt in to inlining locks by specifying MODULE_TIED=1 in the makefile Reviewed by: kib Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D16079
|
#
56a382c6 |
|
18-Jun-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Remove ixlvc.c from files.amd64 ixlvc.c is only used by the VF driver (ixlv), and that driver currently doesn't work. It will be re-added once the VF driver is finished being ported to iflib.
|
#
1031d839 |
|
18-Jun-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Update to use iflib Update the driver to use iflib in order to bring performance, maintainability, and (hopefully) stability benefits to the driver. The driver currently isn't completely ported; features that are missing: - VF driver (ixlv) - SR-IOV host support - RDMA support The plan is to have these re-added to the driver before the next FreeBSD release. Reviewed by: gallatin@ Contributions by: gallatin@, mmacy@, krzysztof.galazka@intel.com Tested by: jeffrey.e.pieper@intel.com MFC after: 1 month Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D15577
|
#
c507c512 |
|
02-Jun-2018 |
Bruce Evans <bde@FreeBSD.org> |
Finish COMPAT_AOUT support for amd64. It wasn't in any amd64 or MI file in /sys/conf, so was unavailable in configurations that don't use modules, and was not testable or notable in NOTES. Its normal configuration (not using a module) is still silently deprecated in aout(4) by not mentioning it there. Update i386 NOTES for COMPAT_AOUT. It is not i386-only, or even very MD. Sort its entry better. Finish gzip configuration (but not support) for amd64. gzip is really gzipped aout. It is currently broken even for i386 (a call to vm fails). amd64 has always attempted to configure and test it, but it depends on COMPAT_AOUT (as noted). The bug that it depends on unconfigured files was not detected since it is configured as a device. All other optional image activators are configured properly using an option.
|
#
e92a1350 |
|
31-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
hwpmc: remove unused pre-table driven bits for intel Intel now provides comprehensive tables for all performance counters and the various valid configuration permutations as text .json files. Libpmc has been converted to use these and hwpmc_core has been greatly simplified by moving to passthrough of the table values. The one gotcha is that said tables don't support pentium pro and and pentium IV. There's very few users of hwpmc on _amd64_ kernels on new hardware. It is unlikely that anyone is doing low level optimization on 15 year old Intel hardware. Nonetheless, if someone feels strongly enough to populate the corresponding tables for p4 and ppro I will reinstate the files in to the build. Code for the K8 counters and !x86 architectures remains unchanged.
|
#
6a909b96 |
|
07-May-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: replace libkern's memset and memmove with assembly variants memmove is repurposed bcopy (arguments swapped, return value added) The libkern variant is a wrapper around bcopy, so this is a big improvement. memset is repurposed memcpy. The librkern variant is doing fishy stuff, including branching on 0 and calling bzero. Both functions are rather crude and subject to partial depessimization. This is a soft prerequisite to adding variants utilizing the 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime.
|
#
ceebc2f3 |
|
01-May-2018 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Update to 1.9.9-k Refresh upstream driver before impending conversion to iflib. Major changes: - Support for descriptor writeback mode (required by ixlv(4) for AVF support) - Ability to disable firmware LLDP agent by user (PR 221530) - Fix for TX queue hang when using TSO (PR 221919) - Separate descriptor ring sizes for TX and RX rings PR: 221530, 221919 Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com> Reviewed by: #IntelNetworking MFC after: 1 day Relnotes: Yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D14985
|
#
1e66f787 |
|
26-Apr-2018 |
Sean Bruno <sbruno@FreeBSD.org> |
martpqi(4): - Microsemi SCSI driver for PQI controllers. - Found on newer model HP servers. - Restrict to AMD64 only as per developer request. The driver provides support for the new generation of PQI controllers from Microsemi. This driver is the first SCSI driver to implement the PQI queuing model and it will replace the aacraid driver for Adaptec Series 9 controllers. HARDWARE Controllers supported by the driver include: HPE Gen10 Smart Array Controller Family OEM Controllers based on the Microsemi Chipset. Submitted by: deepak.ukey@microsemi.com Relnotes: yes Sponsored by: Microsemi Differential Revision: https://reviews.freebsd.org/D14514
|
#
63a93856 |
|
24-Mar-2018 |
Mark Peek <mp@FreeBSD.org> |
Add VMCI (Virtual Machine Communication Interface) driver In a virtual machine, VMCI is exposed as a regular PCI device. The primary communication mechanisms supported are a point-to-point bidirectional transport based on a pair of memory-mapped queues, and asynchronous notifications in the form of datagrams and doorbells. These features are available to kernel level components such as vSockets through the VMCI kernel API. In addition to this, the VMCI kernel API provides support for receiving events related to the state of the VMCI communication channels, and the virtual machine itself. Submitted by: Vishnu Dasa <vdasa@vmware.com> Reviewed by: bcr, imp Obtained from: VMware Differential Revision: https://reviews.freebsd.org/D14289
|
#
fc2a8776 |
|
20-Mar-2018 |
Ed Maste <emaste@FreeBSD.org> |
Rename assym.s to assym.inc assym is only to be included by other .s files, and should never actually be assembled by itself. Reviewed by: imp, bdrewery (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D14180
|
#
6e481f83 |
|
16-Mar-2018 |
Ed Maste <emaste@FreeBSD.org> |
Share a single bsd-linux errno table across MD consumers Three copies of the linuxulator linux_sysvec.c contained identical BSD to Linux errno translation tables, and future work to support other architectures will also use the same table. Move the table to a common file to be used by all. Make it 'const int' to place it in .rodata. (Some existing Linux architectures use MD errno values, but x86 and Arm share the generic set.) This change should introduce no functional change; a followup will add missing errno values. MFC after: 3 weeks Sponsored by: Turing Robotic Industries Inc. Differential Revision: https://reviews.freebsd.org/D14665
|
#
24f93aa0 |
|
02-Mar-2018 |
Ravi Pokala <rpokala@FreeBSD.org> |
imcsmb(4): Intel integrated Memory Controller (iMC) SMBus controller driver imcsmb(4) provides smbus(4) support for the SMBus controller functionality in the integrated Memory Controllers (iMCs) embedded in Intel Sandybridge- Xeon, Ivybridge-Xeon, Haswell-Xeon, and Broadwell-Xeon CPUs. Each CPU implements one or more iMCs, depending on the number of cores; each iMC implements two SMBus controllers (iMC-SMBs). *** IMPORTANT NOTE *** Because motherboard firmware or the BMC might try to use the iMC-SMBs for monitoring DIMM temperatures and/or managing an NVDIMM, the driver might need to temporarily disable those functions, or take a hardware interlock, before using the iMC-SMBs. Details on how to do this may vary from board to board, and the procedure may be proprietary. It is strongly suggested that anyone wishing to use this driver contact their motherboard vendor, and modify the driver as described in the manual page and in the driver itself. (For what it's worth, the driver as-is has been tested on various SuperMicro motherboards.) Reviewed by: avg, jhb MFC after: 1 week Relnotes: yes Sponsored by: Panasas Differential Revision: https://reviews.freebsd.org/D14447 Discussed with: avg, ian, jhb Tested by: allanjude (previous version), Panasas
|
#
94b8a54a |
|
22-Feb-2018 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
[chvgpio] add GPIO driver for Intel Z8xxx SoC family Add chvgpio(4) driver for Intel Z8xxx SoC family. This product was formerly known as Cherry Trail but Linux and OpenBSD drivers refer to it as Cherry View. This driver is derived from OpenBSD one so the name is kept for alignment with another BSD system. Submitted by: Tom Jones <tj@enoti.me> Reviewed by: gonzo, wblock(man page) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D13086
|
#
68f18f30 |
|
29-Jan-2018 |
Benno Rice <benno@FreeBSD.org> |
Remove some duplicated sys/conf/files* entries. net80211/ieee80211_ageq.c was present twice in sys/conf/files so leave the correctly sorted one. dev/wpi/if_wpi.c was present in sys/conf/files as well as sys/conf/files.amd64 and sys/conf/files.i386 so prefer the sys/conf/files entry. Reviewed by: allanjude, rstone
|
#
0e73a619 |
|
01-Oct-2017 |
Andrew Turner <andrew@FreeBSD.org> |
To prepare for adding EFI runtime services support on arm64 move the machine independent parts of the existing code to a new file that can be shared between amd64 and arm64. Reviewed by: kib (previous version), imp Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D12434
|
#
fe182ba1 |
|
26-Sep-2017 |
Conrad Meyer <cem@FreeBSD.org> |
aesni(4): Add support for x86 SHA intrinsics Some x86 class CPUs have accelerated intrinsics for SHA1 and SHA256. Provide this functionality on CPUs that support it. This implements CRYPTO_SHA1, CRYPTO_SHA1_HMAC, and CRYPTO_SHA2_256_HMAC. Correctness: The cryptotest.py suite in tests/sys/opencrypto has been enhanced to verify SHA1 and SHA256 HMAC using standard NIST test vectors. The test passes on this driver. Additionally, jhb's cryptocheck tool has been used to compare various random inputs against OpenSSL. This test also passes. Rough performance averages on AMD Ryzen 1950X (4kB buffer): aesni: SHA1: ~8300 Mb/s SHA256: ~8000 Mb/s cryptosoft: ~1800 Mb/s SHA256: ~1800 Mb/s So ~4.4-4.6x speedup depending on algorithm choice. This is consistent with the results the Linux folks saw for 4kB buffers. The driver borrows SHA update code from sys/crypto sha1 and sha256. The intrinsic step function comes from Intel under a 3-clause BSDL.[0] The intel_sha_extensions_sha<foo>_intrinsic.c files were renamed and lightly modified (added const, resolved a warning or two; included the sha_sse header to declare the functions). [0]: https://software.intel.com/en-us/articles/intel-sha-extensions-implementations Reviewed by: jhb Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12452
|
#
be173360 |
|
12-Sep-2017 |
Sean Bruno <sbruno@FreeBSD.org> |
Leave the Cavium Liquid IO driver exist in files, not files.amd64 Submitted by: imp
|
#
f173c2b7 |
|
12-Sep-2017 |
Sean Bruno <sbruno@FreeBSD.org> |
The diff is the initial submission of Cavium Liquidio 2350/2360 10/25G Intelligent NIC driver. The submission conconsists of firmware binary file and driver sources. Submitted by: pkanneganti@cavium.com (Prasad V Kanneganti) Relnotes: Yes Sponsored by: Cavium Networks Differential Revision: https://reviews.freebsd.org/D11927
|
#
a03d621b |
|
05-Sep-2017 |
Conrad Meyer <cem@FreeBSD.org> |
amdtemp(4): Add support for Family 17h temperature sensor The sensor value is formatted similarly to previous models (same bitfield sizes, same units), but must be read off of the internal System Management Network (SMN) from the System Management Unit (SMU) co-processor. PR: 218264 Reported and tested by: Nils Beyer <nbe AT renzel.net> Reviewed by: avg (no +1), mjoras, truckman Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12217
|
#
907f50fe |
|
05-Sep-2017 |
Conrad Meyer <cem@FreeBSD.org> |
Add smn(4) driver for AMD System Management Network AMD Family 17h CPUs have an internal network used to communicate between the host CPU and the PSP and SMU coprocessors. It exposes a simple 32-bit register space. Reviewed by: avg (no +1), mjoras, truckman Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12217
|
#
ed9652da |
|
30-Aug-2017 |
Alexander Motin <mav@FreeBSD.org> |
Add NTB driver for PLX/Avago/Broadcom PCIe switches. This driver supports both NTB-to-NTB and NTB-to-Root Port modes (though the second with predictable complications on hot-plug and reboot events). I tested it with PEX 8717 and PEX 8733 chips, but expect it should work with many other compatible ones too. It supports up to two NT bridges per chip, each of which can have up to 2 64-bit or 4 32-bit memory windows, 6 or 12 scratchpad registers and 16 doorbells. There are also 4 DMA engines in those chips, but they are not yet supported. While there, rename Intel NTB driver from generic ntb_hw(4) to more specific ntb_hw_intel(4), so now it is on par with this new ntb_hw_plx(4) driver and alike to Linux naming. MFC after: 2 weeks Sponsored by: iXsystems, Inc.
|
#
8a5d94f9 |
|
03-Aug-2017 |
Warner Losh <imp@FreeBSD.org> |
Make nvd vs nda choice boot-time rather than build-time Introduce hw.nvme.use_nvd tunable. This tunable allows both nvd and nda to be installed in the kernel, while allowing only one of them to create devices. This is an all-or-nothing setting, and you can't change it after boot-time. However, it will allow easier A/B testing. Differential Revision: https://reviews.freebsd.org/D11825
|
#
a19f95b3 |
|
13-Jul-2017 |
Bryan Drewery <bdrewery@FreeBSD.org> |
Fix kldload of if_ixl without PCI_IOV kernel option. This also avoids compiling in pci_iov support into the kernel if_ixoif the PCI_IOV option is disabled. Reviewed by: rstone Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11573
|
#
873ed6f0 |
|
02-Jun-2017 |
Ed Maste <emaste@FreeBSD.org> |
linux vdso: pass -fPIC to the assembler, not linker -fPIC has no effect on linking although it seems to be ignored by GNU ld.bfd. However, it causes ld.lld to terminate with an invalid argument error. This is equivalent to r296057 but for the kernel (not modules) case. MFC after: 2 months Sponsored by: The FreeBSD Foundation
|
#
554e6778 |
|
09-May-2017 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Reorganize vmbus device tree For GEN1 Hyper-V, vmbus is attached to pcib0, which contains the resources for PCI passthrough and SR-IOV. There is no acpi_syscontainer0 on GEN1 Hyper-V. For GEN2 Hyper-V, vmbus is attached to acpi_syscontainer0, which contains the resources for PCI passthrough and SR-IOV. There is no pcib0 on GEN2 Hyper-V. The ACPI VMBUS device now only holds its _CRS, which is empty as of this commit; its existence is mainly for upward compatibility. Device tree structure is suggested by jhb@. Tested-by: dexuan@ Collabrated-wth: dexuan@ MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10565
|
#
c9dd0b48 |
|
06-Apr-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Cleanup the bitmap_xxx() functions in the LinuxKPI: - Move all bitmap related functions from bitops.h to bitmap.h, similar to what Linux does. - Apply some minor code cleanup and simplifications to optimize the generated code when using static inline functions. - Implement the following list of bitmap functions which are needed by drm-next and ibcore: - bitmap_find_next_zero_area_off() - bitmap_find_next_zero_area() - bitmap_or() - bitmap_and() - bitmap_xor() - Add missing include directives to the qlnxe driver (davidcs@ has been notified) MFC after: 1 week Sponsored by: Mellanox Technologies
|
#
3f1b91c5 |
|
04-Apr-2017 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/kbd: Add support for synthetic keyboard. Synthetic keyboard is the only supported keyboard on GEN2 Hyper-V. Submitted by: Hongjiang Zhang <honzhan microsoft com> MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10196
|
#
11e25f0d |
|
04-Apr-2017 |
David C Somayajulu <davidcs@FreeBSD.org> |
Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's. Qlogic 45000 Series Adapters MFC after:2 weeks
|
#
b14e3bd2 |
|
30-Mar-2017 |
Nick Hibma <n_hibma@FreeBSD.org> |
Add nctgpio conf lines so it can be compiled into the kernel. MFC after: 2 days
|
#
864c28cf |
|
26-Mar-2017 |
Bruce Evans <bde@FreeBSD.org> |
Use inline asm instead of unportable intrinsics for the SSE4 crc32 optimization. This fixes building with gcc-4.2.1 (it doesn't support SSE4). gas-2.17.50 [FreeBSD] supports SSE4 instructions, so this doesn't need using .byte directives. This fixes depending on host user headers in the kernel. Fix user includes (don't depend on namespace pollution in <nmmintrin.h> that is not included now). The instrinsics had no advantages except to sometimes avoid compiler pessimixations. clang understands them a bit better than inline asm, and generates better looking code which also runs better for cem, but for me it just at the same speed or slower by doing excessive unrollowing in all the wrong places. gcc-4.2.1 also doesn't understand what it is doing with unrolling, but with -O3 somehow it does more unrolling that helps. Reduce 1 of the the compiler pessimizations (copying a variable which already satisfies an "rm" constraint in a good way by being in memory and not used again, to different memory and accessing it there. Force copying it to a register instead). Try to optimize the inner loops significantly, so as to run at full speed on smaller inputs. The algorithm is already very MD, and was tuned for the throughput of 3 crc32 instructions per cycle found on at least Sandybridge through Haswell. Now it is even more tuned for this, so depends more on the compiler not rearranging or unrolling things too much. The main inner loop for should have no difficulty runing at full speed on these CPUs unless the compiler unrolls it too much. However, the main inner loop wasn't even used for buffers smaller than 24K. Now it is used for buffers larger than 384 bytes. Now it is not so long, and the main outer loop is used more. The new optimization is to try to arrange that the outer loop runs in parallel with the next inner loop except for the final iteration; then reduce the loop sizes significantly to take advantage of this. Approved by: cem Not tested in production by: bde
|
#
0e8b3ab3 |
|
21-Feb-2017 |
Ed Maste <emaste@FreeBSD.org> |
Exclude -flto when building *genassym.o The build process generates *assym.h using nm from *genassym.o (which is in turn created from *genassym.c). When compiling with link-time optimization (LTO) using -flto, .o files are LLVM bitcode, not ELF objects. This is not usable by genassym.sh, so remove -flto from those ${CC} invocations. Submitted by: George Rimar Reviewed by: dim MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D9659
|
#
b1fa9878 |
|
17-Feb-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Merge i386 and amd64 mtrr drivers. Reviewed by: royger, jhb Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D9648
|
#
cb6b8299 |
|
09-Feb-2017 |
Eric Joyner <erj@FreeBSD.org> |
ixl(4): Update to 1.7.12-k Refresh upstream driver before impending conversion to iflib. Major new features: - Support for Fortville-based 25G adapters - Support for I2C reads/writes (To prevent getting or sending corrupt data, you should set dev.ixl.0.debug.disable_fw_link_management=1 when using I2C [this will disable link!], then set it to 0 when done. The driver implements the SIOCGI2C ioctl, so ifconfig -v works for reading I2C data, but there are read_i2c and write_i2c sysctls under the .debug sysctl tree [the latter being useful for upper page support in QSFP+]). - Addition of an iWARP client interface (so the future iWARP driver for X722 devices can communicate with the base driver). - Compiling this option in is enabled by default, with "options IXL_IW" in GENERIC. Differential Revision: https://reviews.freebsd.org/D9227 Reviewed by: sbruno MFC after: 2 weeks Sponsored by: Intel Corporation
|
#
db6a9c12 |
|
06-Feb-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Only build the ACPI PCI drivers on x86, they are unlikely to be used on arm64 without dignificant changes. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
|
#
fcf59617 |
|
06-Feb-2017 |
Andrey V. Elsukov <ae@FreeBSD.org> |
Merge projects/ipsec into head/. Small summary ------------- o Almost all IPsec releated code was moved into sys/netipsec. o New kernel modules added: ipsec.ko and tcpmd5.ko. New kernel option IPSEC_SUPPORT added. It enables support for loading and unloading of ipsec.ko and tcpmd5.ko kernel modules. o IPSEC_NAT_T option was removed. Now NAT-T support is enabled by default. The UDP_ENCAP_ESPINUDP_NON_IKE encapsulation type support was removed. Added TCP/UDP checksum handling for inbound packets that were decapsulated by transport mode SAs. setkey(8) modified to show run-time NAT-T configuration of SA. o New network pseudo interface if_ipsec(4) added. For now it is build as part of ipsec.ko module (or with IPSEC kernel). It implements IPsec virtual tunnels to create route-based VPNs. o The network stack now invokes IPsec functions using special methods. The only one header file <netipsec/ipsec_support.h> should be included to declare all the needed things to work with IPsec. o All IPsec protocols handlers (ESP/AH/IPCOMP protosw) were removed. Now these protocols are handled directly via IPsec methods. o TCP_SIGNATURE support was reworked to be more close to RFC. o PF_KEY SADB was reworked: - now all security associations stored in the single SPI namespace, and all SAs MUST have unique SPI. - several hash tables added to speed up lookups in SADB. - SADB now uses rmlock to protect access, and concurrent threads can do SA lookups in the same time. - many PF_KEY message handlers were reworked to reflect changes in SADB. - SADB_UPDATE message was extended to support new PF_KEY headers: SADB_X_EXT_NEW_ADDRESS_SRC and SADB_X_EXT_NEW_ADDRESS_DST. They can be used by IKE daemon to change SA addresses. o ipsecrequest and secpolicy structures were cardinally changed to avoid locking protection for ipsecrequest. Now we support only limited number (4) of bundled SAs, but they are supported for both INET and INET6. o INPCB security policy cache was introduced. Each PCB now caches used security policies to avoid SP lookup for each packet. o For inbound security policies added the mode, when the kernel does check for full history of applied IPsec transforms. o References counting rules for security policies and security associations were changed. The proper SA locking added into xform code. o xform code was also changed. Now it is possible to unregister xforms. tdb_xxx structures were changed and renamed to reflect changes in SADB/SPDB, and changed rules for locking and refcounting. Reviewed by: gnn, wblock Obtained from: Yandex LLC Relnotes: yes Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D9352
|
#
6be2ff7d |
|
30-Jan-2017 |
Conrad Meyer <cem@FreeBSD.org> |
calculate_crc32c: Add SSE4.2 implementation on x86 Derived from an implementation by Mark Adler. The fast loop performs three simultaneous CRCs over subsets of the data before composing them. This takes advantage of certain properties of the CRC32 implementation in Intel hardware. (The CRC instruction takes 1 cycle but has 2-3 cycles of latency.) The CRC32 instruction does not manipulate FPU state. i386 does not have the crc32q instruction, so avoid it there. Otherwise the implementation is identical to amd64. Add basic userland tests to verify correctness on a variety of inputs. PR: 216467 Reported by: Ben RUBSON <ben.rubson at gmail.com> Reviewed by: kib@, markj@ (earlier version) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D9342
|
#
2b375b4e |
|
27-Jan-2017 |
Yoshihiro Takahashi <nyan@FreeBSD.org> |
Remove pc98 support completely. I thank all developers and contributors for pc98. Relnotes: yes
|
#
7367e679 |
|
29-Dec-2016 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): remove obsolete Wake-On-LAN support Wake-on-lan is not supported in production on any of our adapters, as they don't have the required AUX power connector. (It's possible that AUX power is supplied to some of our ALOM or mezz adapters, but if so then we've never implemented or tested WoL support.) Reviewed by: gnn Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D8972
|
#
ecd9d64f |
|
29-Dec-2016 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge(4): delete hunt_phy.c Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 2 days
|
#
d786719d |
|
27-Dec-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
[intelspi] Add SPI driver for Intel BayTrail SoC Add SPI mode (PIO-only) support for Intel Synchronous Serial Port that can be found in several Intel's products starting from PXA family. Most of implementations have slight differences in behavior and in addresses for registers subset. This driver covers only BayTrail SoC implementation for it's the only hardware I have to test it on. Driver attaches to ACPI bus only and does not have PCI or FDT support for now due to lack of hardware to test it on. "intelspi" is the best name I've managed to come up with. Linux driver name (spi-pxa2xx) does not make sense because current implementation does not support actual PXA2xx SoCs. And as far as I know there is no codename assigned to Intel SSP chip. Reviewed by: br, manu MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D8896
|
#
5c072c8e |
|
20-Dec-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/ic: Rename cleaned up files. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8850
|
#
9ff08654 |
|
20-Dec-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/ic: Rname cleaned up file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8848
|
#
f63f5057 |
|
22-Nov-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Only build acpi_timer.c on x86, it fails on arm64 as it attempts to access an invalid address. It is also unneeded on arm64 as we use the ARM Generic Timer driver. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
|
#
8c582c7c |
|
17-Nov-2016 |
Dexuan Cui <dexuan@FreeBSD.org> |
hyperv/pcib: change the file name: pcib.c -> vmbus_pcib.c This makes the file name and the variable naming in the file consistent. Reviewed by: sephe Approved by: sephe (mentor) MFC after: 1 week Sponsored by: Microsoft
|
#
531582f5 |
|
17-Nov-2016 |
Dexuan Cui <dexuan@FreeBSD.org> |
hyperv/pcib: Fix the build for some kernel configs Add the dependency on pci explicitly for the pcib and vmbus drivers. The related Makefiles are updated accordingly too. Reviewed by: sephe Approved by: sephe (mentor) MFC after: 1 week Sponsored by: Microsoft
|
#
871c968b |
|
16-Nov-2016 |
Dexuan Cui <dexuan@FreeBSD.org> |
hyperv/pcib: enable PCIe pass-through (a.k.a. Discrete Device Assignment) The feature enables us to pass through physical PCIe devices to FreeBSD VM running on Hyper-V (Windows Server 2016) to get near-native performance with low CPU utilization. The patch implements a PCI bridge driver to support the feature: 1) The pcib driver talks to the host to discover device(s) and presents the device(s) to FreeBSD's pci driver via PCI configuration space (note: to access the configuration space, we don't use the standard I/O port 0xCF8/CFC method; instead, we use an MMIO-based method supplied by Hyper-V, which is very similar to the 0xCF8/CFC method). 2) The pcib driver allocates resources for the device(s) and initialize the related BARs, when the device driver's attach method is invoked; 3) The pcib driver talks to the host to create MSI/MSI-X interrupt remapping between the guest and the host; 4) The pcib driver supports device hot add/remove. Reviewed by: sephe Approved by: sephe (mentor) MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8332
|
#
168fce73 |
|
14-Nov-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vss: Add driver and tools for VSS VSS stands for "Volume Shadow Copy Service". Unlike virtual machine snapshot, it only takes snapshot for the virtual disks, so both filesystem and applications have to aware of it, and cooperate the whole VSS process. This driver exposes two device files to the userland: /dev/hv_fsvss_dev Normally userland programs should _not_ mess with this device file. It is currently used by the hv_vss_daemon(8), which freezes and thaws the filesystem. NOTE: currently only UFS is supported, if the system mounts _any_ other filesystems, the hv_vss_daemon(8) will veto the VSS process. If hv_vss_daemon(8) was disabled, then this device file must be opened, and proper ioctls must be issued to keep the VSS working. /dev/hv_appvss_dev Userland application can opened this device file to receive the VSS freeze notification, hold the VSS for a while (mainly to flush application data to filesystem), release the VSS process, and receive the VSS thaw notification i.e. applications can run again. The VSS will still work, even if this device file is not opened. However, only filesystem consistency is promised, if this device file is not opened or is not operated properly. hv_vss_daemon(8) is started by devd(8) by default. It can be disabled by editting /etc/devd/hyperv.conf. Submitted by: Hongjiang Zhang <honzhan microsoft com> Reviewed by: kib, mckusick MFC after: 3 weeks Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8224
|
#
95a36367 |
|
04-Nov-2016 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
[gpio] Add GPIO driver for Intel Bay Trail SoC Bay Trail has three banks of GPIOs exposed to userland as /dev/gpiocN, where N is 1, 2, and 3. Pins in each bank are pre-named to match names on boards schematics: GPIO_S0_SCnn, GPIO_S0_NCnn, and GPIO_S5_nn. Controller supports edge-triggered and level-triggered interrupts but current version of the driver does not have interrupts support
|
#
15516c77 |
|
01-Nov-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/hn: Rename cleaned up file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8390
|
#
e6ed06f9 |
|
30-Oct-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/hn: Rename cleaned up RNDIS source file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8361
|
#
68468712 |
|
28-Oct-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/hn: Rename cleaned up NVS source file. MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8354
|
#
cdf2c7a5 |
|
28-Sep-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/storvsc: Fix the blkvsc disk attachment issues. - The original 'disengage' ATA controller model does not work properly for all possible disk configurations. Use the newly added ATA disk veto eventhandler to fit into all possible disk configuration. - If the 'invalid LUN' happens on blkvsc controllers, return CAM_DEV_NOT_THERE so that CAM will not destroy attached disks under the blkvsc controllers. Submitted by: Hongjiang Zhang <honzhan microsoft com> Discussed with: mav MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D7693
|
#
bc3ad3a1 |
|
21-Sep-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Add kernel interfaces to call EFI Runtime Services. Runtime services require special execution environment for the call. Besides that, OS must inform firmware about runtime virtual memory map which will be active during the calls, with the SetVirtualAddressMap() runtime call, done while the 1:1 mapping is still used. There are two complication: the SetVirtualAddressMap() effectively must be done from loader, which needs to know kernel address map in advance. More, despite not explicitely mentioned in the specification, both 1:1 and the map passed to SetVirtualAddressMap() must be active during the SetVirtualAddressMap() call. Second, there are buggy BIOSes which require both mappings active during runtime calls as well, most likely because they fail to identify all relocations to perform. On amd64, we can get rid of both problems by providing 1:1 mapping for the duration of runtime calls, by temprorary remapping user addresses. As result, we avoid the need for loader to know about future kernel address map, and avoid bugs in BIOSes. Typically BIOS only maps something in low 4G. If not runtime bugs, we would take advantage of the DMAP, as previous versions of this patch did. Similar but more complicated trick can be used even for i386 and 32bit runtime, if and when the EFI boot on i386 is supported. We would need a trampoline page, since potentially whole 4G of VA would be switched on calls, instead of only userspace portion on amd64. Context switches are disabled for the duration of the call, FPU access is granted, and interrupts are not disabled. The later is possible because kernel is mapped during calls. To test, the sysctl mib debug.efi_time is provided, setting it to 1 makes one call to EFI get_time() runtime service, on success the efitm structure is printed to the control terminal. Load efirt.ko, or add EFIRT option to the kernel config, to enable code. Discussed with: emaste, imp Tested by: emaste (mac, qemu) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
|
#
22f2f875 |
|
24-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Make execution of 32-bit CloudABI executables work on amd64. A nice thing about requiring a vDSO is that it makes it incredibly easy to provide full support for running 32-bit processes on 64-bit systems. Instead of letting the kernel be responsible for composing/decomposing 64-bit arguments across multiple registers/stack slots, all of this can now be done in the vDSO. This means that there is no need to provide duplicate copies of certain system calls, like the sys_lseek() and freebsd32_lseek() we have for COMPAT_FREEBSD32. This change imports a new vDSO from the CloudABI repository that has automatically generated code in it that copies system call arguments into a buffer, padding them to eight bytes and zero-extending any pointers/size_t arguments. After returning from the kernel, it does the inverse: extracting return values, in the process truncating pointers/size_t values to 32 bits. Obtained from: https://github.com/NuxiNL/cloudabi
|
#
4fbc9065 |
|
21-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Move the linker script from cloudabi64/ to cloudabi/. It turns out that it works perfectly fine for generating 32-bits vDSOs as well. While there, get rid of the extraneous .s file extension.
|
#
7ce07161 |
|
21-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Rewrite the vDSOs for CloudABI in assembly. The reason why the old vDSOs were written in C using inline assembly was purely because they were embedded in the C library directly as static inline functions. This was practical during development, because it meant you could invoke system calls without any library dependencies. The vDSO was simply a copy of these functions. Now that we require the use of the vDSO, there is no longer any need for embedding them in C code directly. Rewriting them in assembly has the advantage that they are closer to ideal (less useless branching, less assumptions about registers remaining unclobbered by the kernel, etc). They are also easier to build, as they no longer depend on the C type information for CloudABI. Obtained from: https://github.com/NuxiNL/cloudabi
|
#
6212aa15 |
|
10-Aug-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Add APIs for various types of transactions. Reviewed by: Jun Su <junsu microsoft com> MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D7456
|
#
13b4b4df |
|
10-Aug-2016 |
Ed Schouten <ed@FreeBSD.org> |
Provide the CloudABI vDSO to its executables. CloudABI executables already provide support for passing in vDSOs. This functionality is used by the emulator for OS X to inject system call handlers. On FreeBSD, we could use it to optimize calls to gettimeofday(), etc. Though I don't have any plans to optimize any system calls right now, let's go ahead and already pass in a vDSO. This will allow us to simplify the executables, as the traditional "syscall" shims can be removed entirely. It also means that we gain more flexibility with regards to adding and removing system calls. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D7438
|
#
4294f337 |
|
07-Aug-2016 |
Sean Bruno <sbruno@FreeBSD.org> |
ixl(4): Update to ixl-1.6.6-k. Submitted by: erj Reviewed by: jeffrey.e.pieper@intel.com MFC after: 3 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D7391
|
#
fa03524a |
|
03-Aug-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Merge i386 and amd64 variants of mp_watchdog.c into x86/, there is no difference between files. For pc98, put x86/mp_x86.c into the same place as used by i386 file list. Fix typo in comment. Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
dc831186 |
|
27-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Rename cleaned up bufring code MFC after: 1 week Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D7318
|
#
e86e17af |
|
19-Jul-2016 |
Mark Johnston <markj@FreeBSD.org> |
Merge {amd64,i386}/instr_size.c into x86_instr_size.c. Also reduce the diff between us and upstream: the input data model will always be DATAMODEL_NATIVE because of a bug (p_model is never set but is always initialized to 0), so we don't need to override the caller anyway. This change is also necessary to support the pid provider for 32-bit processes on amd64. MFC after: 2 weeks
|
#
e6240996 |
|
19-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Rename laundered vmbus channel code MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7232
|
#
7d590c73 |
|
14-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Merge hv_channel_mgmt.c into hv_channel.c MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7126
|
#
e71d1719 |
|
12-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Merge hv_connection.c into hv_channel.c MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7004
|
#
38d19df6 |
|
12-Jul-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/vmbus: Rework vmbus version accessing. Instead of global variable, vmbus version is accessed through a vmbus DEVMETHOD now. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6953
|
#
d09bf884 |
|
10-Jul-2016 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Add linux_mmap.c to the appropriate conf/files. Reported by: kib@ MFC after: 1 week
|
#
9a5325c2 |
|
09-Jul-2016 |
Alexander Motin <mav@FreeBSD.org> |
NewBus'ify NTB subsystem. This follows NTB subsystem modularization in Linux, tuning it to FreeBSD native NewBus interfaces. This change allows to support different types of hardware with different drivers, support multiple NTB instances in a system, ntb_transport module use for needs other then if_ntb, etc. Sponsored by: iXsystems, Inc.
|
#
baabaca3 |
|
09-Jun-2016 |
Warner Losh <imp@FreeBSD.org> |
New NVMe front end (nda).
|
#
d8bf5168 |
|
05-Jun-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Move machine dependent bits into machine dependent files. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6701
|
#
b7bb4816 |
|
01-Jun-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Rename some cleaned up/almost cleaned up files MFC after: 1 week Sponsored by: Microsoft OSTC
|
#
7e118515 |
|
23-May-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Add helpers for busdma(9) operation MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6443
|
#
b3b9415f |
|
14-May-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Update file list for sfgxe(4) again and hey, my amd64 kernels compile again.
|
#
d8ab84fe |
|
14-May-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Remove more files from sfxge(4) which are no longer in the tree in order to make the universe a more happy place.
|
#
587fe827 |
|
13-May-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
hunt_ev.c was deleted with r299596. Remove it from the files list to (hopefully) unbreak amd64 LINT kernels. MFC after: 1 week
|
#
0c29fe6d |
|
14-Apr-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: Deprecate HYPERV option by moving Hyper-V IDT vector into vmbus Submitted by: Jun Su <junsu microsoft com> Reviewed by: jhb, kib, sephe Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5910
|
#
2b1e924b |
|
03-Apr-2016 |
John Baldwin <jhb@FreeBSD.org> |
Move i386/i386/autoconf.c to sys/x86/x86 and use it on both amd64 and i386.
|
#
915d57ae |
|
28-Mar-2016 |
Ed Maste <emaste@FreeBSD.org> |
simplify compile-time default keyboard map generation In r296926 the -P <path> option was added to kbdcontrol, which enables this change for a simplified compile-time default keymap build process. PR: 193865 Reviewed by: Oliver Pinter Tested by: Oliver Pinter MFC After: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5708
|
#
3aa274f7 |
|
15-Mar-2016 |
Ed Maste <emaste@FreeBSD.org> |
Fix atkbdmap.h generation for sc/vt consoles Keymap header files have historically been generated using the build host's /usr/sbin/kbdcontrol and using the host's keymap files. However, that introduces an issue when building a kernel to use vt(4) on a system using sc(4), or vice versa: kbdcontrol searches for keymap files in the /usr/share subdirectory appropriate for the host, not the target. With this change the build searches both the and sc keymap directories from the source tree. PR: 193865 Submitted by: Harald Schmalzbauer
|
#
0bc2abdd |
|
23-Feb-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv/utils: Code rearrange and cleanup Split heartbeat, shutdown and timesync out of utils code and name them properly. Submitted by: Jun Su <junsu microsoft com> Reviewed by: adrian, sephe, Hongjiang Zhang <honzhan microsoft com> MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5216
|
#
252a329b |
|
21-Jan-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Remove fdt_fixup_table from architectures where it's unneeded. We only make use of fdt_fixup_table on PowerPC and ARM. As such we can remove it from other architectures as it's unneeded. Reviewed by: nwhitehorn Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D5013
|
#
0c848230 |
|
14-Jan-2016 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge: add accessors for license-related MCDI calls to common code Add support for Huntington MCDI licensing interface to common code. Ported from Linux net driver IOCTL functions with restructuring for initial support for V3 licensing API. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Reviewed by: gnn Sponsored by: Solarflare Communications, Inc. MFC after: 2 days Differential Revision: https://reviews.freebsd.org/D4918
|
#
99781cb3 |
|
13-Jan-2016 |
Sepherosa Ziehau <sephe@FreeBSD.org> |
hyperv: implement an event timer Submitted by: Howard Su <howard0su@gmail.com> Reviewed by: delphij, royger, adrian Approved by: adrian (mentor) Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4676
|
#
67da38c5 |
|
21-Sep-2015 |
Ed Maste <emaste@FreeBSD.org> |
Move kbd.c to main sys/conf/files list It is (optionally) used on all architectures. Sponsored by: The FreeBSD Foundation
|
#
4db79feb |
|
10-Sep-2015 |
Mark Johnston <markj@FreeBSD.org> |
Merge stack(9) implementations for i386 and amd64 under x86/. Reviewed by: jhb, kib Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3255
|
#
e974f91c |
|
24-Aug-2015 |
Conrad Meyer <cem@FreeBSD.org> |
Import ioat(4) driver I/OAT is also referred to as Crystal Beach DMA and is a Platform Storage Extension (PSE) on some Intel server platforms. This driver currently supports DMA descriptors only and is part of a larger effort to upstream an interconnect between multiple systems using the Non-Transparent Bridge (NTB) PSE. For now, this driver is only built on AMD64 platforms. It may be ported to work on i386 later, if that is desired. The hardware is exclusive to x86. Further documentation on ioat(4), including API documentation and usage, can be found in the new manual page. Bring in a test tool, ioatcontrol(8), in tools/tools/ioat. The test tool is not hooked up to the build and is not intended for end users. Submitted by: jimharris, Carl Delsey <carl.r.delsey@intel.com> Reviewed by: jimharris (reviewed my changes) Approved by: markj (mentor) Relnotes: yes Sponsored by: Intel Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3456
|
#
1558258b |
|
14-Aug-2015 |
Rui Paulo <rpaulo@FreeBSD.org> |
sys/conf: pass NMFLAGS to nm(1) via genassym.sh.
|
#
7ef5e8bc |
|
12-Aug-2015 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Better support memory mapped console devices, such as VGA and EFI frame buffers and memory mapped UARTs. 1. Delay calling cninit() until after pmap_bootstrap(). This makes sure we have PMAP initialized enough to add translations. Keep kdb_init() after cninit() so that we have console when we need to break into the debugger on boot. 2. Unfortunately, the ATPIC code had be moved as well so as to avoid a spurious trap #30. The reason for which is not known at this time. 3. In pmap_mapdev_attr(), when we need to map a device prior to the VM system being initialized, use virtual_avail as the KVA to map the device at. In particular, avoid using the direct map on amd64 because we can't demote by virtue of not being able to allocate yet. Keep track of the translation. Re-use the translation after the VM has been initialized to not waste KVA and to satisfy the assumption in uart(4) that the handle returned for the low-level console is the same as later returned when the device is probed and attached. 4. In pmap_unmapdev() remove the mapping from the table when called pre-init. Otherwise keep the mapping. During bus probe and attach device resources are mapped and unmapped multiple times, which would have us destroy the mapping used by the low-level console. 5. In pmap_init(), set pmap_initialized to signal that we're not pre-init anymore. On amd64, bring the direct map in sync with the translations created at that time. 6. Implement bus_space_map() and bus_space_unmap() for real: when the tag corresponds to memory space, call the corresponding pmap_mapdev() and pmap_unmapdev() functions to construct and actual handle. 7. In efifb.c and vt_vga.c, remove the crutches and hacks and simply call pmap_mapdev_attr() or bus_space_map() as desired. Notes: 1. uart(4) already used bus_space_map() during low-level console setup but since serial ports have traditionally been I/O port based, the lack of a proper implementation for said function was not a problem. It has always supported memory mapped UARTs for low-level consoles by setting hw.uart.console accordingly. 2. The use of the direct map on amd64 without setting caching attributes has been a bigger problem than previously thought. This change has the fortunate (and unexpected) side-effect of fixing various EFI frame buffer problems (though not all). PR: 191564, 194952 Special thanks to: 1. XipLink, Inc -- generously donated an Intel Bay Trail E3800 based eval board (ADLE3800PC). 2. The FreeBSD Foundation, in particular emaste@ -- for UEFI support in general and testing. 3. Everyone who tested the proposed for PR 191564. 4. jhb@ and kib@ for being a soundboard and applying a clue bat if so needed.
|
#
051b71e5 |
|
10-Aug-2015 |
Conrad Meyer <cem@FreeBSD.org> |
files.amd64: Build ntb_hw.o if if_ntb OR ntb_hw Approved by: markj (mentor) Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3349
|
#
6e5fcd99 |
|
16-Jul-2015 |
Ed Schouten <ed@FreeBSD.org> |
Add a sysentvec for CloudABI on x86-64. Summary: For CloudABI we need to put two things on the stack of new processes: the argument data (a binary blob; not strings) and a startup data structure. The startup data structure contains interesting things such as a pointer to the ELF program header, the thread ID of the initial thread, a stack smashing protection canary, and a pointer to the argument data. Fetching system call arguments and setting the return value is similar to FreeBSD. The only differences are that system call 0 does not exist and that we call into cloudabi_convert_errno() to convert the error code. We also need this function in a couple of other places, so we'd better reuse it here. Reviewers: dchagin, kib Reviewed By: kib Subscribers: imp Differential Revision: https://reviews.freebsd.org/D3098
|
#
4f4d15f0 |
|
10-Jun-2015 |
Ruslan Bukin <br@FreeBSD.org> |
Allow DTrace to be compiled-in to the kernel. This will require for AArch64 as we dont have modules yet. Sponsored by: HEIF5 Sponsored by: ARM Ltd. Differential Revision: https://reviews.freebsd.org/D1997
|
#
3c838a9f |
|
25-May-2015 |
Andrew Rybchenko <arybchik@FreeBSD.org> |
sfxge: add 7xxx NICs family support Support 7xxx adapters including firmware-assisted TSO and VLAN tagging: - Solarflare Flareon Ultra 7000 series 10/40G adapters: - Solarflare SFN7042Q QSFP+ Server Adapter - Solarflare SFN7142Q QSFP+ Server Adapter - Solarflare Flareon Ultra 7000 series 10G adapters: - Solarflare SFN7022F SFP+ Server Adapter - Solarflare SFN7122F SFP+ Server Adapter - Solarflare SFN7322F Precision Time Synchronization Server Adapter - Solarflare Flareon 7000 series 10G adapters: - Solarflare SFN7002F SFP+ Server Adapter Support utilities to configure adapters and update firmware. The work is done by Solarflare developers (Andy Moreton, Andrew Lee and many others), Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me. Sponsored by: Solarflare Communications, Inc. MFC after: 2 weeks Causually read by: gnn Differential Revision: https://reviews.freebsd.org/D2618
|
#
c5d87f33 |
|
24-May-2015 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
For objcopy, use --input-target and --output-target When building with gcc 4.9 and binutils 2.25, using '--input' and '--output' returns an error message: objcopy: option `--input' is ambiguous Reported by: Jenkins
|
#
4ab7403b |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Rework signal code to allow using it by other modules, like linprocfs: 1. Linux sigset always 64 bit on all platforms. In order to move Linux sigset code to the linux_common module define it as 64 bit int. Move Linux sigset manipulation routines to the MI path. 2. Move Linux signal number definitions to the MI path. In general, they are the same on all platforms except for a few signals. 3. Map Linux RT signals to the FreeBSD RT signals and hide signal conversion tables to avoid conversion errors. 4. Emulate Linux SIGPWR signal via FreeBSD SIGRTMIN signal which is outside of allowed on Linux signal numbers. PR: 197216
|
#
e16fe1c7 |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Implement epoll family system calls. This is a tiny wrapper around kqueue() to implement epoll subset of functionality. The kqueue user data are 32bit on i386 which is not enough for epoll user data, so we keep user data in the proc emuldata. Initial patch developed by rdivacky@ in 2007, then extended by Yuri Victorovich @ r255672 and finished by me in collaboration with mjg@ and jillies@. Differential Revision: https://reviews.freebsd.org/D1092
|
#
67d39748 |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Introduce a new module linux_common.ko which is intended for the following primary purposes: 1. Remove the dependency of linsysfs and linprocfs modules from linux.ko, which will be architecture specific on amd64. 2. Incorporate into linux_common.ko general code for platforms on which we'll support two Linuxulator modules (for both instruction set - 32 & 64 bit). 3. Move malloc(9) declaration to linux_common.ko, to enable getting memory usage statistics properly. Currently linux_common.ko incorporates a code from linux_mib.c and linux_util.c and linprocfs, linsysfs and linux kernel modules depend on linux_common.ko. Temporarily remove dtrace garbage from linux_mib.c and linux_util.c Differential Revision: https://reviews.freebsd.org/D1072 In collaboration with: Vassilis Laganakos. Reviewed by: trasz
|
#
bdc37934 |
|
24-May-2015 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Implement vdso - virtual dynamic shared object. Through vdso Linux exposes functions from kernel with proper DWARF CFI information so that it becomes easier to unwind through them. Using vdso is a mandatory for a thread cancelation && cleanup on a modern glibc. Differential Revision: https://reviews.freebsd.org/D1060
|
#
59023e6c |
|
30-Apr-2015 |
Jung-uk Kim <jkim@FreeBSD.org> |
Remove leftover from r282269. MFC after: 2 weeks X-MFC with: r282269
|
#
ed95805e |
|
30-Apr-2015 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for Xen PV domU kernels. Support for HVM domU kernels remains. Xen is planning to phase out support for PV upstream since it is harder to maintain and has more overhead. Modern x86 CPUs include virtualization extensions that support HVM guests instead of PV guests. In addition, the PV code was i386 only and not as well maintained recently as the HVM code. - Remove the i386-only NATIVE option that was used to disable certain components for PV kernels. These components are now standard as they are on amd64. - Remove !XENHVM bits from PV drivers. - Remove various shims required for XEN (e.g. PT_UPDATES_FLUSH, LOAD_CR3, etc.) - Remove duplicate copy of <xen/features.h>. - Remove unused, i386-only xenstored.h. Differential Revision: https://reviews.freebsd.org/D2362 Reviewed by: royger Tested by: royger (i386/amd64 HVM domU and amd64 PVH dom0) Relnotes: yes
|
#
d588c3d6 |
|
28-Apr-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Only enable the hpet driver on x86 hardware, it doesn't exist on arm64. Sponsored by: The FreeBSD Foundation
|
#
02c26f81 |
|
24-Apr-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Move common code from sys/i386/i386/mp_machdep.c and sys/amd64/amd64/mp_machdep.c, to the new common x86 source sys/x86/x86/mp_x86.c. Proposed and reviewed by: jhb Review: https://reviews.freebsd.org/D2347 Sponsored by: The FreeBSD Foundation
|
#
dfe7b3bf |
|
21-Apr-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Move some common code from sys/amd64/amd64/machdep.c and sys/i386/i386/machdep.c to new file sys/x86/x86/cpu_machdep.c. Most of the code is related to the idle handling. Discussed with: pluknet Sponsored by: The FreeBSD Foundation
|
#
0a110d5b |
|
19-Mar-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Use VT-d interrupt remapping block (IR) to perform FSB messages translation. In particular, despite IO-APICs only take 8bit apic id, IR translation structures accept 32bit APIC Id, which allows x2APIC mode to function properly. Extend msi_cpu of struct msi_intrsrc and io_cpu of ioapic_intsrc to full int from one byte. KPI of IR is isolated into the x86/iommu/iommu_intrmap.h, to avoid bringing all dmar headers into interrupt code. The non-PCI(e) devices which generate message interrupts on FSB require special handling. The HPET FSB interrupts are remapped, while DMAR interrupts are not. For each msi and ioapic interrupt source, the iommu cookie is added, which is in fact index of the IRE (interrupt remap entry) in the IR table. Cookie is made at the source allocation time, and then used at the map time to fill both IRE and device registers. The MSI address/data registers and IO-APIC redirection registers are programmed with the special values which are recognized by IR and used to restore the IRE index, to find proper delivery mode and target. Map all MSI interrupts in the block when msi_map() is called. Since an interrupt source setup and dismantle code are done in the non-sleepable context, flushing interrupt entries cache in the IR hardware, which is done async and ideally waits for the interrupt, requires busy-wait for queue to drain. The dmar_qi_wait_for_seq() is modified to take a boolean argument requesting busy-wait for the written sequence number instead of waiting for interrupt. Some interrupts are configured before IR is initialized, e.g. ACPI SCI. Add intr_reprogram() function to reprogram all already configured interrupts, and call it immediately before an IR unit is enabled. There is still a small window after the IO-APIC redirection entry is reprogrammed with cookie but before the unit is enabled, but to fix this properly, IR must be started much earlier. Add workarounds for 5500 and X58 northbridges, some revisions of which have severe flaws in handling IR. Use the same identification methods as employed by Linux. Review: https://reviews.freebsd.org/D1892 Reviewed by: neel Discussed with: jhb Tested by: glebius, pho (previous versions) Sponsored by: The FreeBSD Foundation MFC after: 3 weeks
|
#
3d7f3c9d |
|
01-Mar-2015 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
Record the dependency to x86bios in vga_pci This fixes the build of XEN and XBOX kernels on i386, which was broken in r279487. While here, do not build vga_pci_repost() on PC98. Reported by: bz@
|
#
d3ccddf3 |
|
04-Feb-2015 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Generalized parts of the XEN timer code into a generic pvclock KVM clock shares the same data structures between the guest and the host as Xen so it makes sense to just have a single copy of this code. Differential Revision: https://reviews.freebsd.org/D1429 Reviewed by: royger (eariler version) MFC after: 1 month
|
#
c234c2de |
|
30-Jan-2015 |
Dimitry Andric <dim@FreeBSD.org> |
For clang, disable -Wcast-qual warnings for specific aesni files, since clang 3.6.0 will emit a number of such warnings for those files, and they are partially contributed code.
|
#
08fca7a5 |
|
12-Dec-2014 |
John-Mark Gurney <jmg@FreeBSD.org> |
Add some new modes to OpenCrypto. These modes are AES-ICM (can be used for counter mode), and AES-GCM. Both of these modes have been added to the aesni module. Included is a set of tests to validate that the software and aesni module calculate the correct values. These use the NIST KAT test vectors. To run the test, you will need to install a soon to be committed port, nist-kat that will install the vectors. Using a port is necessary as the test vectors are around 25MB. All the man pages were updated. I have added a new man page, crypto.7, which includes a description of how to use each mode. All the new modes and some other AES modes are present. It would be good for someone else to go through and document the other modes. A new ioctl was added to support AEAD modes which AES-GCM is one of them. Without this ioctl, it is not possible to test AEAD modes from userland. Add a timing safe bcmp for use to compare MACs. Previously we were using bcmp which could leak timing info and result in the ability to forge messages. Add a minor optimization to the aesni module so that single segment mbufs don't get copied and instead are updated in place. The aesni module needs to be updated to support blocked IO so segmented mbufs don't have to be copied. We require that the IV be specified for all calls for both GCM and ICM. This is to ensure proper use of these functions. Obtained from: p4: //depot/projects/opencrypto Relnotes: yes Sponsored by: FreeBSD Foundation Sponsored by: NetGate
|
#
f35b3592 |
|
09-Dec-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: create a new PCI bus override When running as a Xen PVH Dom0 we need to add custom buses that override some of the functionality present in the ACPI PCI Bus and the PCI Bus. We currently override the ACPI PCI Bus, but not the PCI Bus, so add a new override for the PCI Bus and share the generic functions between them. Reported by: David P. Discher <dpd@dpdtech.com> Sponsored by: Citrix Systems R&D conf/files.amd64: - Add the new files. x86/xen/xen_pci_bus.c: - Generic file that contains the PCI overrides so they can be used by the several PCI specific buses. xen/xen_pci.h: - Prototypes for the generic overried functions. dev/xen/pci/xen_pci.c: - Xen specific override for the PCI bus. dev/xen/pci/xen_acpi_pci.c: - Xen specific override for the ACPI PCI bus.
|
#
c97038fa |
|
25-Nov-2014 |
Ruslan Bukin <br@FreeBSD.org> |
o Add Virtio MMIO bus driver to config o Move Virtio-related to common config file
|
#
217eb125 |
|
03-Nov-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add VirtIO console to the x86 NOTES and files Requested by: jhb
|
#
a0cc5254 |
|
03-Nov-2014 |
Konstantin Belousov <kib@FreeBSD.org> |
agp_intel.c provides support for AGP on Intel chipsets from 440/BX to 875. This intersects with the agp_i810.c, which supports all Intels from i810 to Core i5/7. Both agp_intel.c and agp_i810.c are compiled into kernel when device agp is specified in config, and agp_i810 attach seems to be selected by chance due to linking order. Strip support for 810 and later from agp_intel.c. Since 440-class chipsets do not support any long-mode capable CPUs, remove agp_intel.c from amd64 kernel file list. Note that agp_intel.c is not compiled into agp.ko on amd64 already. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
|
#
44e06d15 |
|
30-Sep-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
msi: add Xen MSI implementation This patch adds support for MSI interrupts when running on Xen. Apart from adding the Xen related code needed in order to register MSI interrupts this patch also makes the msi_init function a hook in init_ops, so different MSI implementations can have different initialization functions. Sponsored by: Citrix Systems R&D xen/interface/physdev.h: - Add the MAP_PIRQ_TYPE_MULTI_MSI to map multi-vector MSI to the Xen public interface. x86/include/init.h: - Add a hook for setting custom msi_init methods. amd64/amd64/machdep.c: i386/i386/machdep.c: - Set the default msi_init hook to point to the native MSI initialization method. x86/xen/pv.c: - Set the Xen MSI init hook when running as a Xen guest. x86/x86/local_apic.c: - Call the msi_init hook instead of directly calling msi_init. xen/xen_intr.h: x86/xen/xen_intr.c: - Introduce support for registering/releasing MSI interrupts with Xen. - The MSI interrupts will use the same PIC as the IO APIC interrupts. xen/xen_msi.h: x86/xen/xen_msi.c: - Introduce a Xen MSI implementation. x86/xen/xen_nexus.c: - Overwrite the default MSI hooks in the Xen Nexus to use the Xen MSI implementation. x86/xen/xen_pci.c: - Introduce a Xen specific PCI bus that inherits from the ACPI PCI bus and overwrites the native MSI methods. - This is needed because when running under Xen the MSI messages used to configure MSI interrupts on PCI devices are written by Xen itself. dev/acpica/acpi_pci.c: - Lower the quality of the ACPI PCI bus so the newly introduced Xen PCI bus can take over when needed. conf/files.i386: conf/files.amd64: - Add the newly created files to the build process.
|
#
14f2533c |
|
23-Sep-2014 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
As per [1] Intel only supports this driver on 64bit platforms. For now restrict it to amd64. Other architectures might be re-added later once tested. Remove the drivers from the global NOTES and files files and move them to the amd64 specifics. Remove the drivers from the i386 modules build and only leave the amd64 version. Rather than depending on "inet" depend on "pci" and make sure that ixl(4) and ixlv(4) can be compiled independently [2]. This also allows the drivers to build properly on IPv4-only or IPv6-only kernels. PR: 193824 [2] Reviewed by: eric.joyner intel.com MFC after: 3 days References: [1] http://lists.freebsd.org/pipermail/svn-src-all/2014-August/090470.html
|
#
0a041f3b |
|
18-Sep-2014 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Implement most of timer_{create,settime,gettime,getoverrun,delete} for amd64/linux32. Fix the entirely bogus (untested) version from r161310 for i386/linux using the same shared code in compat/linux. It is unclear to me if we could support more clock mappings but the current set allows me to successfully run commercial 32bit linux software under linuxolator on amd64. Reviewed by: jhb Differential Revision: D784 MFC after: 3 days Sponsored by: DARPA, AFRL
|
#
e72055b7 |
|
12-Sep-2014 |
Xin LI <delphij@FreeBSD.org> |
Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft, many thanks for their continued support of FreeBSD. While I'm there, also implement a new build knob, WITHOUT_HYPERV to disable building and installing of the HyperV utilities when necessary. The HyperV utilities are only built for i386 and amd64 targets. This is a stable/10 candidate for inclusion with 10.1-RELEASE. Submitted by: Wei Hu <weh microsoft com> MFC after: 1 week
|
#
33a50f1b |
|
04-Sep-2014 |
John Baldwin <jhb@FreeBSD.org> |
Merge the amd64 and i386 identcpu.c into a single x86 implementation. This brings the structured extended features mask and VT-x reporting to i386 and Intel cache and TLB info (under bootverbose) to amd64.
|
#
e048c706 |
|
16-Jun-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: create a Xen nexus to use in PV/PVH Introduce a Xen specific nexus that is going to be used by Xen PV/PVH guests. Sponsored by: Citrix Systems R&D Approved by: gibbs x86/xen/xen_nexus.c: - Introduce a Nexus to use on Xen PV(H) guests, this prevents PV(H) guests from using the legacy Nexus. conf/files.amd64: conf/files.i386: - Add the xen nexus to the build.
|
#
aa64d12b |
|
16-Jun-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: introduce xenpv bus Create a dummy bus so top level Xen devices can attach to it (instead of attaching directly to the nexus). This allows to have all the Xen related devices grouped under a single bus. Sponsored by: Citrix Systems R&D Approved by: gibbs x86/xen/xenpv.c: - Attach the xenpv bus when running as a Xen guest. - Attach the ISA bus if needed, in order to attach syscons. conf/files.amd6: conf/files.i386: - Include the xenpv.c file in the build of i386/amd64 kernels using XENHVM. dev/xen/console/console.c: dev/xen/timer/timer.c: xen/xenstore/xenstore.c: - Attach to the xenpv bus instead of the Nexus. dev/xen/xenpci/xenpci.c: - Xen specific devices on PVHVM guests are no longer attached to the xenpci device, they are instead attached to the xenpv bus, remove the now unused methods.
|
#
842471b3 |
|
16-Jun-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: add hooks for Xen PV APIC Create the necessary hooks in order to provide a Xen PV APIC implementation that can be used on PVH. Most of the lapic ops shouldn't be called on Xen, since we trap those operations at a higher layer. Sponsored by: Citrix Systems R&D Approved by: gibbs x86/xen/hvm.c: x86/xen/xen_apic.c: - Move IPI related code to xen_apic.c x86/xen/xen_apic.c: - Introduce Xen PV APIC implementation, most of the functions of the lapic interface should never be called when running as PV(H) guest, so make sure FreeBSD panics when trying to use one of those. - Define the Xen APIC implementation in xen_apic_ops. xen/xen_pv.h: - Extern declaration of the xen_apic struct. x86/xen/pv.c: - Use xen_apic_ops as apic_ops when running as PVH guest. conf/files.amd64: conf/files.i386: - Include the xen_apic.c file in the build of i386/amd64 kernels using XENHVM.
|
#
81e3caaf |
|
21-May-2014 |
Justin Hibbits <jhibbits@FreeBSD.org> |
imagact_binmisc builds for all supported architectures, so enable it for all. Any bugs in execution will be dealt with as they crop up. MFC after: 3 weeks Relnotes: Yes
|
#
804e0170 |
|
02-May-2014 |
Eitan Adler <eadler@FreeBSD.org> |
lindev(4): finish the partial commit in r265212 lindev(4) was only used to provide /dev/full which is now a standard feature of FreeBSD. /dev/full was never linux-specific and provides a generally useful feature. Document this in UPDATING and bump __FreeBSD_version. This will be documented in the PH shortly. Reported by: jkim
|
#
6d756449 |
|
08-Apr-2014 |
Sean Bruno <sbruno@FreeBSD.org> |
Add Stacey Son's binary activation patches that allow remapping of execution to a emumation program via parsing of ELF header information. With this kernel module and userland tool, poudriere is able to build ports packages via the QEMU userland tools (or another emulator program) in a different architecture chroot, e.g. TARGET=mips TARGET_ARCH=mips I'm not connecting this to GENERIC for obvious reasons, but this should allow the kernel module to be built by default and enable the building of the userland tool (which automatically loads the kernel module). Submitted by: sson@ Reviewed by: jhb@
|
#
3d80242f |
|
11-Mar-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: add an apic_enumerator for PVH On PVH there's no ACPI, so the CPU enumeration must be implemented using Xen hypercalls. Approved by: gibbs Sponsored by: Citrix Systems R&D x86/xen/pvcpu_enum.c: - Enumerate avaiable vCPUs on PVH by using the VCPUOP_is_up hypercall. - Set vcpu_id for PVH guests. conf/files.amd64: - Include the PV CPU enumerator in the XENHVM build.
|
#
5f05c794 |
|
11-Mar-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: implement an early timer for Xen PVH When running as a PVH guest, there's no emulated i8254, so we need to use the Xen PV timer as the early source for DELAY. This change allows for different implementations of the early DELAY function and implements a Xen variant for it. Approved by: gibbs Sponsored by: Citrix Systems R&D dev/xen/timer/timer.c: dev/xen/timer/timer.h: - Implement Xen early delay functions using the PV timer and declare them. x86/include/init.h: - Add hooks for early clock source initialization and early delay functions. i386/i386/machdep.c: pc98/pc98/machdep.c: amd64/amd64/machdep.c: - Set early delay hooks to use the i8254 on bare metal. - Use clock_init (that will in turn make use of init_ops) to initialize the early clock source. amd64/include/clock.h: i386/include/clock.h: - Declare i8254_delay and clock_init. i386/xen/clock.c: - Rename DELAY to i8254_delay. x86/isa/clock.c: - Introduce clock_init that will take care of initializing the early clock by making use of the init_ops hooks. - Move non ISA related delay functions to the newly introduced delay file. x86/x86/delay.c: - Add moved delay related functions. - Implement generic DELAY function that will use the init_ops hooks. x86/xen/pv.c: - Set PVH hooks for the early delay related functions in init_ops. conf/files.amd64: conf/files.i386: conf/files.pc98: - Add delay.c to the kernel build.
|
#
1a9cdd37 |
|
11-Mar-2014 |
Roger Pau Monné <royger@FreeBSD.org> |
xen: add PV/PVH kernel entry point Add the PV/PVH entry point and the low level functions for PVH early initialization. Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/genassym.c: - Add __FreeBSD_version define to assym.s so it can be used for the Xen notes. amd64/amd64/locore.S: - Make bootstack global so it can be used from Xen kernel entry point. amd64/amd64/xen-locore.S: - Add Xen notes to the kernel. - Add the Xen PV entry point, that is going to call hammer_time_xen. amd64/include/asmacros.h: - Add ELFNOTE macros. i386/xen/xen_machdep.c: - Define HYPERVISOR_start_info for the XEN i386 PV port, which is going to be used in some shared code between PV and PVH. x86/xen/hvm.c: - Define HYPERVISOR_start_info for the PVH port. x86/xen/pv.c: - Introduce hammer_time_xen which is going to perform early setup for Xen PVH: - Setup shared Xen variables start_info, shared_info and xen_store. - Set guest type. - Create initial page tables as FreeBSD expects to find them. - Call into native init function (hammer_time). xen/xen-os.h: - Declare HYPERVISOR_start_info. conf/files.amd64: - Add amd64/amd64/locore.S and x86/xen/pv.c to the list of files.
|
#
7f47cbd3 |
|
15-Feb-2014 |
Christian Brueffer <brueffer@FreeBSD.org> |
Retire the nve(4) driver; nfe(4) has been the default driver for NVIDIA nForce MCP adapters for a long time. Yays: jhb, remko, yongari Nays: none on the current and stable lists
|
#
10c40180 |
|
17-Jan-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add very simple virtio_random(4) driver to harvest entropy from host Reviewed by: markm (random bits only)
|
#
27cf7d04 |
|
05-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Merge VT(9) project (a.k.a. newcons). Reviewed by: nwhitehorn MFC_to_10_after: re approval Sponsored by: The FreeBSD Foundation
|
#
68eeb96a |
|
01-Nov-2013 |
Konstantin Belousov <kib@FreeBSD.org> |
Add support for queued invalidation. Right now, the semaphore write is scheduled after each batch, which is not optimal and must be tuned. Discussed with: alc Tested by: pho MFC after: 1 month
|
#
86be9f0d |
|
28-Oct-2013 |
Konstantin Belousov <kib@FreeBSD.org> |
Import the driver for VT-d DMAR hardware, as specified in the revision 1.3 of Intelб╝ Virtualization Technology for Directed I/O Architecture Specification. The Extended Context and PASIDs from the rev. 2.2 are not supported, but I am not aware of any released hardware which implements them. Code does not use queued invalidation, see comments for the reason, and does not provide interrupt remapping services. Code implements the management of the guest address space per domain and allows to establish and tear down arbitrary mappings, but not partial unmapping. The superpages are created as needed, but not promoted. Faults are recorded, fault records could be obtained programmatically, and printed on the console. Implement the busdma(9) using DMARs. This busdma backend avoids bouncing and provides security against misbehaving hardware and driver bad programming, preventing leaks and corruption of the memory by wild DMA accesses. By default, the implementation is compiled into amd64 GENERIC kernel but disabled; to enable, set hw.dmar.enable=1 loader tunable. Code is written to work on i386, but testing there was low priority, and driver is not enabled in GENERIC. Even with the DMAR turned on, individual devices could be directed to use the bounce busdma with the hw.busdma.pci<domain>:<bus>:<device>:<function>.bounce=1 tunable. If DMARs are capable of the pass-through translations, it is used, otherwise, an identity-mapping page table is constructed. The driver was tested on Xeon 5400/5500 chipset legacy machine, Haswell desktop and E5 SandyBridge dual-socket boxes, with ahci(4), ata(4), bce(4), ehci(4), mfi(4), uhci(4), xhci(4) devices. It also works with em(4) and igb(4), but there some fixes are needed for drivers, which are not committed yet. Intel GPUs do not work with DMAR (yet). Many thanks to John Baldwin, who explained me the newbus integration; Peter Holm, who did all testing and helped me to discover and understand several incredible bugs; and to Jim Harris for the access to the EDS and BWG and for listening when I have to explain my findings to somebody. Sponsored by: The FreeBSD Foundation MFC after: 1 month
|
#
3f9d41ed |
|
27-Oct-2013 |
Konstantin Belousov <kib@FreeBSD.org> |
Add a virtual table for the busdma methods on x86, to allow different busdma implementations to coexist. Copy busdma_machdep.c to busdma_bounce.c, which is still a single implementation of the busdma interface on x86 for now. The busdma_machdep.c only contains common and dispatch code. Tested by: pho (as part of the larger patch) Sponsored by: The FreeBSD Foundation MFC after: 1 month
|
#
1a3c1f06 |
|
06-Oct-2013 |
Mark Murray <markm@FreeBSD.org> |
Snapshot. Looking pretty good; this mostly works now. New code includes: * Read cached entropy at startup, both from files and from loader(8) preloaded entropy. Failures are soft, but announced. Untested. * Use EVENTHANDLER to do above just before we go multiuser. Untested.
|
#
f02e47dc |
|
04-Oct-2013 |
Mark Murray <markm@FreeBSD.org> |
Snapshot. This passes the build test, but has not yet been finished or debugged. Contains: * Refactor the hardware RNG CPU instruction sources to feed into the software mixer. This is unfinished. The actual harvesting needs to be sorted out. Modified by me (see below). * Remove 'frac' parameter from random_harvest(). This was never used and adds extra code for no good reason. * Remove device write entropy harvesting. This provided a weak attack vector, was not very good at bootstrapping the device. To follow will be a replacement explicit reseed knob. * Separate out all the RANDOM_PURE sources into separate harvest entities. This adds some secuity in the case where more than one is present. * Review all the code and fix anything obviously messy or inconsistent. Address som review concerns while I'm here, like rename the pseudo-rng to 'dummy'. Submitted by: Arthur Mesh <arthurmesh@gmail.com> (the first item)
|
#
4e400768 |
|
20-Sep-2013 |
David Christensen <davidch@FreeBSD.org> |
Substantial rewrite of bxe(4) to add support for the BCM57712 and BCM578XX controllers. Approved by: re MFC after: 4 weeks
|
#
b12698e1 |
|
18-Sep-2013 |
Roman Divacky <rdivacky@FreeBSD.org> |
Revert r255672, it has some serious flaws, leaking file references etc. Approved by: re (delphij)
|
#
253c75c0 |
|
18-Sep-2013 |
Roman Divacky <rdivacky@FreeBSD.org> |
Implement epoll support in Linuxulator. This is a tiny wrapper around kqueue to implement epoll subset of functionality. The kqueue user data are 32bit on i386 which is not enough for epoll user data so this patch overrides kqueue fileops to maintain enough space in struct file. Initial patch developed by me in 2007 and then extended and finished by Yuri Victorovich. Approved by: re (delphij) Sponsored by: Google Summer of Code Submitted by: Yuri Victorovich <yuri at rawbw dot com> Tested by: Yuri Victorovich <yuri at rawbw dot com>
|
#
a74e05dd |
|
10-Sep-2013 |
David E. O'Brien <obrien@FreeBSD.org> |
Back out r255440. /usr/bin/gcc @r255185 (2013-09-03) can build this. Approved by: re (kib)
|
#
9dc29a3c |
|
09-Sep-2013 |
David E. O'Brien <obrien@FreeBSD.org> |
Only use a clang'ism if ${CC} is clang. Reviewed by: sjg Approved by: re (kib)
|
#
2ee2dc6f |
|
09-Sep-2013 |
Peter Grehan <grehan@FreeBSD.org> |
Revert the kvp code - there's still some work that needs to be done for that. Discussed with: Microsoft hyper-v devs
|
#
d940bfec |
|
09-Sep-2013 |
Peter Grehan <grehan@FreeBSD.org> |
Latest update from Microsoft. Obtained from: Microsoft Hyper-v dev team
|
#
ff6c7bf5 |
|
03-Sep-2013 |
John-Mark Gurney <jmg@FreeBSD.org> |
Use the fact that the AES-NI instructions can be pipelined to improve performance... Use SSE2 instructions for calculating the XTS tweek factor... Let the compiler do more work and handle register allocation by using intrinsics, now only the key schedule is in assembly... Replace .byte hard coded instructions w/ the proper instructions now that both clang and gcc support them... On my machine, pulling the code to userland I saw performance go from ~150MB/sec to 2GB/sec in XTS mode. GELI on GNOP saw a more modest increase of about 3x due to other system overhead (geom and opencrypto)... These changes allow almost full disk io rate w/ geli... Reviewed by: -current, -security Thanks to: Mike Hamburg for the XTS tweek algorithm
|
#
76acc41f |
|
29-Aug-2013 |
Justin T. Gibbs <gibbs@FreeBSD.org> |
Implement vector callback for PVHVM and unify event channel implementations Re-structure Xen HVM support so that: - Xen is detected and hypercalls can be performed very early in system startup. - Xen interrupt services are implemented using FreeBSD's native interrupt delivery infrastructure. - the Xen interrupt service implementation is shared between PV and HVM guests. - Xen interrupt handlers can optionally use a filter handler in order to avoid the overhead of dispatch to an interrupt thread. - interrupt load can be distributed among all available CPUs. - the overhead of accessing the emulated local and I/O apics on HVM is removed for event channel port events. - a similar optimization can eventually, and fairly easily, be used to optimize MSI. Early Xen detection, HVM refactoring, PVHVM interrupt infrastructure, and misc Xen cleanups: Sponsored by: Spectra Logic Corporation Unification of PV & HVM interrupt infrastructure, bug fixes, and misc Xen cleanups: Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D sys/x86/x86/local_apic.c: sys/amd64/include/apicvar.h: sys/i386/include/apicvar.h: sys/amd64/amd64/apic_vector.S: sys/i386/i386/apic_vector.s: sys/amd64/amd64/machdep.c: sys/i386/i386/machdep.c: sys/i386/xen/exception.s: sys/x86/include/segments.h: Reserve IDT vector 0x93 for the Xen event channel upcall interrupt handler. On Hypervisors that support the direct vector callback feature, we can request that this vector be called directly by an injected HVM interrupt event, instead of a simulated PCI interrupt on the Xen platform PCI device. This avoids all of the overhead of dealing with the emulated I/O APIC and local APIC. It also means that the Hypervisor can inject these events on any CPU, allowing upcalls for different ports to be handled in parallel. sys/amd64/amd64/mp_machdep.c: sys/i386/i386/mp_machdep.c: Map Xen per-vcpu area during AP startup. sys/amd64/include/intr_machdep.h: sys/i386/include/intr_machdep.h: Increase the FreeBSD IRQ vector table to include space for event channel interrupt sources. sys/amd64/include/pcpu.h: sys/i386/include/pcpu.h: Remove Xen HVM per-cpu variable data. These fields are now allocated via the dynamic per-cpu scheme. See xen_intr.c for details. sys/amd64/include/xen/hypercall.h: sys/dev/xen/blkback/blkback.c: sys/i386/include/xen/xenvar.h: sys/i386/xen/clock.c: sys/i386/xen/xen_machdep.c: sys/xen/gnttab.c: Prefer FreeBSD primatives to Linux ones in Xen support code. sys/amd64/include/xen/xen-os.h: sys/i386/include/xen/xen-os.h: sys/xen/xen-os.h: sys/dev/xen/balloon/balloon.c: sys/dev/xen/blkback/blkback.c: sys/dev/xen/blkfront/blkfront.c: sys/dev/xen/console/xencons_ring.c: sys/dev/xen/control/control.c: sys/dev/xen/netback/netback.c: sys/dev/xen/netfront/netfront.c: sys/dev/xen/xenpci/xenpci.c: sys/i386/i386/machdep.c: sys/i386/include/pmap.h: sys/i386/include/xen/xenfunc.h: sys/i386/isa/npx.c: sys/i386/xen/clock.c: sys/i386/xen/mp_machdep.c: sys/i386/xen/mptable.c: sys/i386/xen/xen_clock_util.c: sys/i386/xen/xen_machdep.c: sys/i386/xen/xen_rtc.c: sys/xen/evtchn/evtchn_dev.c: sys/xen/features.c: sys/xen/gnttab.c: sys/xen/gnttab.h: sys/xen/hvm.h: sys/xen/xenbus/xenbus.c: sys/xen/xenbus/xenbus_if.m: sys/xen/xenbus/xenbusb_front.c: sys/xen/xenbus/xenbusvar.h: sys/xen/xenstore/xenstore.c: sys/xen/xenstore/xenstore_dev.c: sys/xen/xenstore/xenstorevar.h: Pull common Xen OS support functions/settings into xen/xen-os.h. sys/amd64/include/xen/xen-os.h: sys/i386/include/xen/xen-os.h: sys/xen/xen-os.h: Remove constants, macros, and functions unused in FreeBSD's Xen support. sys/xen/xen-os.h: sys/i386/xen/xen_machdep.c: sys/x86/xen/hvm.c: Introduce new functions xen_domain(), xen_pv_domain(), and xen_hvm_domain(). These are used in favor of #ifdefs so that FreeBSD can dynamically detect and adapt to the presence of a hypervisor. The goal is to have an HVM optimized GENERIC, but more is necessary before this is possible. sys/amd64/amd64/machdep.c: sys/dev/xen/xenpci/xenpcivar.h: sys/dev/xen/xenpci/xenpci.c: sys/x86/xen/hvm.c: sys/sys/kernel.h: Refactor magic ioport, Hypercall table and Hypervisor shared information page setup, and move it to a dedicated HVM support module. HVM mode initialization is now triggered during the SI_SUB_HYPERVISOR phase of system startup. This currently occurs just after the kernel VM is fully setup which is just enough infrastructure to allow the hypercall table and shared info page to be properly mapped. sys/xen/hvm.h: sys/x86/xen/hvm.c: Add definitions and a method for configuring Hypervisor event delievery via a direct vector callback. sys/amd64/include/xen/xen-os.h: sys/x86/xen/hvm.c: sys/conf/files: sys/conf/files.amd64: sys/conf/files.i386: Adjust kernel build to reflect the refactoring of early Xen startup code and Xen interrupt services. sys/dev/xen/blkback/blkback.c: sys/dev/xen/blkfront/blkfront.c: sys/dev/xen/blkfront/block.h: sys/dev/xen/control/control.c: sys/dev/xen/evtchn/evtchn_dev.c: sys/dev/xen/netback/netback.c: sys/dev/xen/netfront/netfront.c: sys/xen/xenstore/xenstore.c: sys/xen/evtchn/evtchn_dev.c: sys/dev/xen/console/console.c: sys/dev/xen/console/xencons_ring.c Adjust drivers to use new xen_intr_*() API. sys/dev/xen/blkback/blkback.c: Since blkback defers all event handling to a taskqueue, convert this task queue to a "fast" taskqueue, and schedule it via an interrupt filter. This avoids an unnecessary ithread context switch. sys/xen/xenstore/xenstore.c: The xenstore driver is MPSAFE. Indicate as much when registering its interrupt handler. sys/xen/xenbus/xenbus.c: sys/xen/xenbus/xenbusvar.h: Remove unused event channel APIs. sys/xen/evtchn.h: Remove all kernel Xen interrupt service API definitions from this file. It is now only used for structure and ioctl definitions related to the event channel userland device driver. Update the definitions in this file to match those from NetBSD. Implementing this interface will be necessary for Dom0 support. sys/xen/evtchn/evtchnvar.h: Add a header file for implemenation internal APIs related to managing event channels event delivery. This is used to allow, for example, the event channel userland device driver to access low-level routines that typical kernel consumers of event channel services should never access. sys/xen/interface/event_channel.h: sys/xen/xen_intr.h: Standardize on the evtchn_port_t type for referring to an event channel port id. In order to prevent low-level event channel APIs from leaking to kernel consumers who should not have access to this data, the type is defined twice: Once in the Xen provided event_channel.h, and again in xen/xen_intr.h. The double declaration is protected by __XEN_EVTCHN_PORT_DEFINED__ to ensure it is never declared twice within a given compilation unit. sys/xen/xen_intr.h: sys/xen/evtchn/evtchn.c: sys/x86/xen/xen_intr.c: sys/dev/xen/xenpci/evtchn.c: sys/dev/xen/xenpci/xenpcivar.h: New implementation of Xen interrupt services. This is similar in many respects to the i386 PV implementation with the exception that events for bound to event channel ports (i.e. not IPI, virtual IRQ, or physical IRQ) are further optimized to avoid mask/unmask operations that aren't necessary for these edge triggered events. Stubs exist for supporting physical IRQ binding, but will need additional work before this implementation can be fully shared between PV and HVM. sys/amd64/amd64/mp_machdep.c: sys/i386/i386/mp_machdep.c: sys/i386/xen/mp_machdep.c sys/x86/xen/hvm.c: Add support for placing vcpu_info into an arbritary memory page instead of using HYPERVISOR_shared_info->vcpu_info. This allows the creation of domains with more than 32 vcpus. sys/i386/i386/machdep.c: sys/i386/xen/clock.c: sys/i386/xen/xen_machdep.c: sys/i386/xen/exception.s: Add support for new event channle implementation.
|
#
e3c97c2c |
|
23-Aug-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add vmx(4), a VMware VMXNET3 ethernet driver ported from OpenBSD
|
#
38441bd9 |
|
19-Jul-2013 |
Jim Harris <jimharris@FreeBSD.org> |
Add message when nvd disks are attached and detached. As part of this commit, add an nvme_strvis() function which borrows heavily from cam_strvis(). This will allow stripping of leading/trailing whitespace and also handle unprintable characters in model/serial numbers. This function goes into a new nvme_util.c file which is used by both the driver and nvmecontrol. Sponsored by: Intel Reviewed by: carl MFC after: 3 days
|
#
15b996d7 |
|
18-Jul-2013 |
Peter Grehan <grehan@FreeBSD.org> |
First cut at adding the hyperv drivers to GENERIC. The files inventory should probably have the modules split out into net/storage/common etc as the modules build is, but this will do for now.
|
#
1fdeb165 |
|
06-Jul-2013 |
Xin LI <delphij@FreeBSD.org> |
Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver. This driver works for FreeBSD/i386 and FreeBSD/amd64 platforms. Many thanks to HighPoint for providing this driver. MFC after: 1 day
|
#
237abf0c |
|
28-Jun-2013 |
Davide Italiano <davide@FreeBSD.org> |
- Trim an unused and bogus Makefile for mount_smbfs. - Reconnect with some minor modifications, in particular now selsocket() internals are adapted to use sbintime units after recent'ish calloutng switch.
|
#
711bcba0 |
|
25-Jun-2013 |
David C Somayajulu <davidcs@FreeBSD.org> |
Add Qlogic 10Gb Ethernet Driver for Qlogic 8100 Series CNA Adapter Driver version (v2.0.0) Submitted by: David C Somayajulu (davidcs@freebsd.org) QLogic Corporation Approved by: George Neville-Neil (gnn@freebsd.org)
|
#
cb34ed44 |
|
20-May-2013 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Add basic support for FDT to i386 & amd64. This change includes: 1. Common headers for fdt.h and ofw_machdep.h under x86/include with indirections under i386/include and amd64/include. 2. New modinfo for loader provided FDT blob. 3. Common x86_init_fdt() called from hammer_time() on amd64 and init386() on i386. 4. Split-off FDT specific low-level console functions from FDT bus methods for the uart(4) driver. The low-level console logic has been moved to uart_cpu_fdt.c and is used for arm, mips & powerpc only. The FDT bus methods are shared across all architectures. 5. Add dev/fdt/fdt_x86.c to hold the fdt_fixup_table[] and the fdt_pic_table[] arrays. Both are empty right now. FDT addresses are I/O ports on x86. Since the core FDT code does not handle different address spaces, adding support for both I/O ports and memory addresses requires some thought and discussion. It may be better to use a compile-time option that controls this. Obtained from: Juniper Networks, Inc.
|
#
f10a77bb |
|
15-May-2013 |
David C Somayajulu <davidcs@FreeBSD.org> |
Add Qlogic 10Gigabit Ethernet & CNA Adapter Driver Version 3.10.10 for QLogic 8300 Series Adapters Submitted by: David C Somayajulu (davidcs@freebsd.org) QLogic Corporation Approved by: George Neville-Neil (gnn@freebsd.org)
|
#
e47937d1 |
|
29-Apr-2013 |
Carl Delsey <carl@FreeBSD.org> |
Add a new driver to support the Intel Non-Transparent Bridge(NTB). The NTB allows you to connect two systems with this device using a PCI-e link. The driver is made of two modules: - ntb_hw which is a basic hardware abstraction layer for the device. - if_ntb which implements the ntb network device and the communication protocol. The driver is limited at the moment to CPU memcpy instead of using DMA, and only Back-to-Back mode is supported. Also the network device isn't full featured yet. These changes will be coming soon. The DMA change will also bring in the ioat driver from the project branch it is on now. This is an initial port of the GPL/BSD Linux driver contributed by Jon Mason from Intel. Any bugs are my contributions. Sponsored by: Intel Reviewed by: jimharris, joel (man page only) Approved by: jimharris (mentor)
|
#
933c7bc9 |
|
12-Apr-2013 |
Jung-uk Kim <jkim@FreeBSD.org> |
Unbreak tinderbox build after r249420.
|
#
0cfbcf8c |
|
06-Mar-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Remove the virtio dependency entry for the VirtIO device drivers. This will prevent the kernel from linking if the device driver are included without the virtio module. Remove pci and scbus for the same reason. Also explain the relationship and necessity of the virtio and virtio_pci modules. Currently in FreeBSD, we only support VirtIO PCI, but it could be replaced with a different interface (like MMIO) and the device (network, block, etc) will still function. Requested by: luigi Approved by: grehan (mentor) MFC after: 3 days
|
#
8ec81e39 |
|
21-Jan-2013 |
Xin LI <delphij@FreeBSD.org> |
- Don't include date and time the driver is built, this is useful for generating binary diffs. - Constify a few strings used in the driver. - Style changes to make the driver compile with default clang settings. Approved by: HighPoint Technologies MFC after: 3 days
|
#
ae366ffc |
|
13-Jan-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add VirtIO to the i386 and amd64 GENERIC kernels This also removes the kludge from r239009 that covered only the network driver. Reviewed by: grehan Approved by: grehan (mentor) MFC after: 1 week
|
#
e3cdd5e1 |
|
24-Oct-2012 |
Warner Losh <imp@FreeBSD.org> |
Hoist the MI compat_freebsd32 files up into files from files.*.
|
#
2e564269 |
|
17-Oct-2012 |
Attilio Rao <attilio@FreeBSD.org> |
Disconnect non-MPSAFE SMBFS from the build in preparation for dropping GIANT from VFS. In addition, disconnect also netsmb, which is a base requirement for SMBFS. In the while SMBFS regular users can use FUSE interface and smbnetfs port to work with their SMBFS partitions. Also, there are ongoing efforts by vendor to support in-kernel smbfs, so there are good chances that it will get relinked once properly locked. This is not targeted for MFC.
|
#
eb85d44f |
|
17-Sep-2012 |
Jim Harris <jimharris@FreeBSD.org> |
Integrate nvme(4) and nvd(4) into the amd64 and i386 builds. Sponsored by: Intel
|
#
c5e3d0ab |
|
13-Sep-2012 |
Konstantin Belousov <kib@FreeBSD.org> |
Rename the IVY_RNG option to RDRAND_RNG. Based on submission by: Arthur Mesh <arthurmesh@gmail.com> MFC after: 2 weeks
|
#
7e2fcdff |
|
12-Sep-2012 |
Jim Harris <jimharris@FreeBSD.org> |
Remove some trailing whitespace.
|
#
72bacdc5 |
|
12-Sep-2012 |
David E. O'Brien <obrien@FreeBSD.org> |
Replace a bare use of 'objcopy' with ${OBJCOPY} for easier cross compilation in environments where 'objcopy' is spelled differently. Submitted by: John Van Horne <jvanhorne@juniper.net>
|
#
b8c0bcd2 |
|
05-Sep-2012 |
Dimitry Andric <dim@FreeBSD.org> |
After r240104, make sure the hpt27xx driver also compiles with clang, when it is statically linked into the kernel. MFC after: 2 weeks X-MFC-With: r240104
|
#
ef9461ba |
|
05-Sep-2012 |
Konstantin Belousov <kib@FreeBSD.org> |
Add support for new Intel on-CPU Bull Mountain random number generator, found on IvyBridge and supposedly later CPUs, accessible with RDRAND instruction. From the Intel whitepapers and articles about Bull Mountain, it seems that we do not need to perform post-processing of RDRAND results, like AES-encryption of the data with random IV and keys, which was done for Padlock. Intel claims that sanitization is performed in hardware. Make both Padlock and Bull Mountain random generators support code covered by kernel config options, for the benefit of people who prefer minimal kernels. Also add the tunables to disable hardware generator even if detected. Reviewed by: markm, secteam (simon) Tested by: bapt, Michael Moll <kvedulv@kvedulv.de> MFC after: 3 weeks
|
#
8a6c6fad |
|
09-Jun-2012 |
Mitsuru IWASAKI <iwasaki@FreeBSD.org> |
Some fixes for r236772. - Remove cpuset stopped_cpus which is no longer used. - Add a short comment for cpuset suspended_cpus clearing. - Fix the un-ordered x86/acpica/acpi_wakeup.c in conf/files.amd64 and i386. Pointed-out by: attilio@
|
#
fb864578 |
|
08-Jun-2012 |
Mitsuru IWASAKI <iwasaki@FreeBSD.org> |
Add x86/acpica/acpi_wakeup.c for amd64 and i386. Difference of suspend/resume procedures are minimized among them. common: - Add global cpuset suspended_cpus to indicate APs are suspended/resumed. - Remove acpi_waketag and acpi_wakemap from acpivar.h (no longer used). - Add some variables in acpi_wakecode.S in order to minimize the difference among amd64 and i386. - Disable load_cr3() because now CR3 is restored in resumectx(). amd64: - Add suspend/resume related members (such as MSR) in PCB. - Modify savectx() for above new PCB members. - Merge acpi_switch.S into cpu_switch.S as resumectx(). i386: - Merge(and remove) suspendctx() into savectx() in order to match with amd64 code. Reviewed by: attilio@, acpi@
|
#
2059ee3c |
|
10-Apr-2012 |
Marcel Moolenaar <marcel@FreeBSD.org> |
uart_cpu_amd64.c and uart_cpu_i386.c (under sys/dev/uart) are identical now that the bus spaces are unified under sys/x86. Replace them with a single uart_cpu_x86.c. o delete uart_cpu_i386.c o move uart_cpu_amd64.c to uart_cpu_x86.c o update files.amd64 and files.i386 accordingly.
|
#
435803f3 |
|
30-Mar-2012 |
John Baldwin <jhb@FreeBSD.org> |
Move the legacy(4) driver to x86.
|
#
88c7c434 |
|
27-Mar-2012 |
Peter Wemm <peter@FreeBSD.org> |
Allow (with a license warning) "options ZFS" to work in static kernels. The 'make depend' rules have to use custom -I paths for the special compat includes for the opensolaris/zfs headers. This option will pull in the couple of files that are shared with dtrace, but they appear to correctly use the MODULE_VERSION/MODULE_DEPEND rules so loader should do the right thing, as should kldload. Reviewed by: pjd (glanced at)
|
#
646af7c6 |
|
09-Mar-2012 |
John Baldwin <jhb@FreeBSD.org> |
Move i386's intr_machdep.c to the x86 tree and share it with amd64.
|
#
ad47abd2 |
|
09-Mar-2012 |
John Baldwin <jhb@FreeBSD.org> |
Allow a native i386 kernel to be built with 'nodevice atpic'. Just as on amd64, if 'device isa' is present quiesce the 8259A's during boot and resume from suspend. While here, be more selective on amd64 about which kernel configurations need elcr.c. MFC after: 2 weeks
|
#
0566170f |
|
06-Mar-2012 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Provide wbwd(4), a driver for the watchdog timer found on various Winbond Super I/O chips. With minor efforts it should be possible the extend the driver to support further chips/revisions available from Winbond. In the simplest case only new IDs need to be added, while different chipsets might require their own function to enter extended function mode, etc. Sponsored by: Sandvine Incorporated ULC (in 2011) Reviewed by: emaste, brueffer MFC after: 2 weeks
|
#
f11c7f63 |
|
31-Jan-2012 |
Jim Harris <jimharris@FreeBSD.org> |
Add isci(4) driver for amd64 and i386 targets. The isci driver is for the integrated SAS controller in the Intel C600 (Patsburg) chipset. Source files in sys/dev/isci directory are FreeBSD-specific, and sys/dev/isci/scil subdirectory contains an OS-agnostic library (SCIL) published by Intel to control the SAS controller. This library is used primarily as-is in this driver, with some post-processing to better integrate into the kernel build environment. isci.4 and a README in the sys/dev/isci directory contain a few additional details. This driver is only built for amd64 and i386 targets. Sponsored by: Intel Reviewed by: scottl Approved by: scottl
|
#
8c6f8f3d |
|
21-Jan-2012 |
Konstantin Belousov <kib@FreeBSD.org> |
Add support for the extended FPU states on amd64, both for native 64bit and 32bit ABIs. As a side-effect, it enables AVX on capable CPUs. In particular: - Query the CPU support for XSAVE, list of the supported extensions and the required size of FPU save area. The hw.use_xsave tunable is provided for disabling XSAVE, and hw.xsave_mask may be used to select the enabled extensions. - Remove the FPU save area from PCB and dynamically allocate the (run-time sized) user save area on the top of the kernel stack, right above the PCB. Reorganize the thread0 PCB initialization to postpone it after BSP is queried for save area size. - The dumppcb, stoppcbs and susppcbs now do not carry the FPU state as well. FPU state is only useful for suspend, where it is saved in dynamically allocated suspfpusave area. - Use XSAVE and XRSTOR to save/restore FPU state, if supported and enabled. - Define new mcontext_t flag _MC_HASFPXSTATE, indicating that mcontext_t has a valid pointer to out-of-struct extended FPU state. Signal handlers are supplied with stack-allocated fpu state. The sigreturn(2) and setcontext(2) syscall honour the flag, allowing the signal handlers to inspect and manipilate extended state in the interrupted context. - The getcontext(2) never returns extended state, since there is no place in the fixed-sized mcontext_t to place variable-sized save area. And, since mcontext_t is embedded into ucontext_t, makes it impossible to fix in a reasonable way. Instead of extending getcontext(2) syscall, provide a sysarch(2) facility to query extended FPU state. - Add ptrace(2) support for getting and setting extended state; while there, implement missed PT_I386_{GET,SET}XMMREGS for 32bit binaries. - Change fpu_kern KPI to not expose struct fpu_kern_ctx layout to consumers, making it opaque. Internally, struct fpu_kern_ctx now contains a space for the extended state. Convert in-kernel consumers of fpu_kern KPI both on i386 and amd64. First version of the support for AVX was submitted by Tim Bird <tim.bird am sony com> on behalf of Sony. This version was written from scratch. Tested by: pho (previous version), Yamagi Burmeister <lists yamagi org> MFC after: 1 month
|
#
ee5f87f4 |
|
09-Jan-2012 |
Jung-uk Kim <jkim@FreeBSD.org> |
Enable hardware RNG for VIA Nano processors. PR: kern/163974
|
#
81966bce |
|
28-Dec-2011 |
Xin LI <delphij@FreeBSD.org> |
Import the first release of HighPoint RocketRAID 27xx SAS 6Gb/s HBA card driver. This driver works for FreeBSD/i386 and FreeBSD/amd64 platforms. Many thanks to HighPoint for providing this driver. MFC after: 2 weeks
|
#
61af1d13 |
|
12-Dec-2011 |
Fabien Thomas <fabient@FreeBSD.org> |
Add watchdog support for VIA south bridge chipset. Tested on VT8251, VX900 but CX700, VX800, VX855 should works. MFC after: 1 month Sponsored by: NETASQ
|
#
7ac6374d |
|
28-Nov-2011 |
Philip Paeps <philip@FreeBSD.org> |
Limit building sfxge(4) in-kernel to amd64 for the time being. We can put it back after I fix the breakages on some of our more exotic platforms. While here, add the driver to the amd64 NOTES, so it can be picked up in LINT builds.
|
#
0bc7cf6f |
|
03-Nov-2011 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Add QLogic 10 Gigabit Ethernet & CNA Adapter Driver version 1.30 for 3200 and 8200 series cards. Submitted by: David C Somayajulu (david.somayajulu@qlogic.com), Qlogic Corporation MFC After: 3 days
|
#
1368987a |
|
22-Jun-2011 |
John Baldwin <jhb@FreeBSD.org> |
Move {amd64,i386}/pci/pci_bus.c and {amd64,i386}/include/pci_cfgreg.h to the x86 tree. The $PIR code is still only enabled on i386 and not amd64. While here, make the qpi(4) driver on conditional on 'device pci'.
|
#
6c4c7d0f |
|
14-May-2011 |
Peter Grehan <grehan@FreeBSD.org> |
bhyve import part 2 of 2, guest kernel changes. This branch is now considered frozen: future bhyve development will take place in a branch off -CURRENT. sys/dev/bvm/bvm_console.c sys/dev/bvm/bvm_dbg.c - simple console driver/gdb debug port used for bringup. supported by user-space bhyve executable sys/conf/options.amd64 sys/amd64/amd64/minidump_machdep.c - allow NKPT to be set in the kernel config file sys/amd64/conf/GENERIC - mptable config options; bhyve user-space executable creates an mptable with number of CPUs, and optional vendor extension - add bvm console/debug - set NKPT to 512 to allow loading of large RAM disks from the loader - include kdb/gdb sys/amd64/amd64/local_apic.c sys/amd64/amd64/apic_vector.S sys/amd64/include/specialreg.h - if x2apic mode available, use MSRs to access the local APIC, otherwise fall back to 'classic' MMIO mode sys/amd64/amd64/mp_machdep.c - support AP spinup on CPU models that don't have real-mode support by overwriting the real-mode page with a message that supplies the bhyve user-space executable with enough information to start the AP directly in 64-bit mode. sys/amd64/amd64/vm_machdep.c - insert pause statements into cpu shutdown busy-wait loops sys/dev/blackhole/blackhole.c sys/modules/blackhole/Makefile - boot-time loadable module that claims all PCI bus/slot/funcs specified in an env var that are to be used for PCI passthrough sys/amd64/amd64/intr_machdep.c - allow round-robin assignment of device interrupts to CPUs to be disabled from the loader sys/amd64/include/bus.h - convert string ins/outs instructions to loops of individual in/out since bhyve doesn't support these yet sys/kern/subr_bus.c - if the device was no created with a fixed devclass, then remove it's association with the devclass it was associated with during probe. Otherwise, new drivers do not get a chance to probe/attach since the device will stay married to the first driver that it probed successfully but failed to attach. Sponsored by: NetApp, Inc.
|
#
70df4233 |
|
19-Apr-2011 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Compile in in_cksum* implementations for both IPv6 and IPv6. While in_pseudo() etc. is often used in offloading feature support, in_cksum() is mostly used to fix some broken hardware. Keeping both around for the moment allows us to compile NIC drivers even in an IPv6 only environment without the need to mangle them with #ifdef INETs in a way they are not prepared for. This will leave some dead code paths that will not be exercised for IPv6. Reviewed by: gnn Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems MFC after: 3 days
|
#
222198ab |
|
12-Feb-2011 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Move linux_clone(), linux_fork(), linux_vfork() to a MI path.
|
#
2fea6431 |
|
17-Jan-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add reader/writer lock around mem_range_attr_get() and mem_range_attr_set(). Compile sys/dev/mem/memutil.c for all supported platforms and remove now unnecessary dev_mem_md_init(). Consistently define mem_range_softc from mem.c for all platforms. Add missing #include guards for machine/memdev.h and sys/memrange.h. Clean up some nearby style(9) nits. MFC after: 1 month
|
#
91ff9dc0 |
|
08-Dec-2010 |
Colin Percival <cperciva@FreeBSD.org> |
Replace i386/i386/busdma_machdep.c and amd64/amd64/busdma_machdep.c (which are identical) with a single x86/x86/busdma_machdep.c.
|
#
dd7d207d |
|
07-Dec-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Merge sys/amd64/amd64/tsc.c and sys/i386/i386/tsc.c and move to sys/x86/x86. Discussed with: avg
|
#
7c2bf852 |
|
09-Nov-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Refactor acpi_machdep.c for amd64 and i386, move APM emulation into a new file acpi_apm.c, and place it on sys/x86/acpica.
|
#
cedd86ca |
|
08-Nov-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Now OsdEnvironment.c is identical on amd64 and i386. Move it to a new home.
|
#
13e25cb7 |
|
08-Nov-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the MADT parser for amd64 and i386 to sys/x86/acpica now that it is identical on both platforms.
|
#
ba2a2735 |
|
28-Oct-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Merge nexus.c from amd64 and i386 to x86 subtree. Sponsored by: Sandvine Incorporated Tested by: gianni
|
#
a3da9792 |
|
28-Oct-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Merge the mptable support from MD bits to x86 subtree. Sponsored by: Sandvine Incorporated Discussed with: jhb
|
#
256439c9 |
|
25-Oct-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Merge dump_machdep.c i386/amd64 under the x86 subtree. Sponsored by: Sandvine Incorporated Tested by: gianni
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
37d696a3 |
|
14-Oct-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Stop hard coding nm(1) and make it overridable.
|
#
cbf4dac6 |
|
19-Sep-2010 |
Norikatsu Shigemura <nork@FreeBSD.org> |
Add support 'device tpm' for amd64. Add tpm(4)'s default setting to /boot/defaults/loader.conf. Add 'device tpm' to NOTES for amd64 and i386. Discussed with: takawata Approved by: imp (mentor)
|
#
c2175767 |
|
25-Aug-2010 |
John Baldwin <jhb@FreeBSD.org> |
Intel QPI chipsets actually provide two extra "non-core" PCI buses that provide PCI devices for various hardware such as memory controllers, etc. These PCI buses are not enumerated via ACPI however. Add qpi(4) psuedo bus and Host-PCI bridge drivers to enumerate these buses. Currently the driver uses the CPU ID to determine the bridges' presence. In collaboration with: Joseph Golio @ Isilon Systems MFC after: 2 weeks
|
#
dd540b46 |
|
27-Jul-2010 |
John Baldwin <jhb@FreeBSD.org> |
Add a parser for the ACPI SRAT table for amd64 and i386. It sets PCPU(domain) for each CPU and populates a mem_affinity array suitable for the NUMA support in the physical memory allocator. Reviewed by: alc
|
#
5f270659 |
|
23-Jul-2010 |
Konstantin Belousov <kib@FreeBSD.org> |
Crypto(4) driver for AESNI. The aeskeys_{amd64,i386}.S content was mostly obtained from OpenBSD, no objections to the license from core. Hardware provided by: Sentex Communications Tested by: fabient, pho (previous versions) MFC after: 1 month
|
#
43fe7d45 |
|
14-Jul-2010 |
Alexander Motin <mav@FreeBSD.org> |
Rename timeevents.c to kern_clocksource.c. Suggested by: jhb@
|
#
28ab822d |
|
14-Jul-2010 |
Alexander Motin <mav@FreeBSD.org> |
Move timeevents.c to MI code, as it is not x86-specific. I already have it working on Marvell ARM SoCs, and it would be nice to unify timer code between more platforms.
|
#
588697d4 |
|
12-Jul-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Move i386-inherited logic of building ACPI headers for acpi_wakeup.c into better places and remove intermediate makefile and shell scripts. This makes parallel kernel build little bit safer for amd64.
|
#
25eb1b8c |
|
22-Jun-2010 |
Alexander Motin <mav@FreeBSD.org> |
Some style fixes for r209371. Submitted by: jhb@
|
#
875b8844 |
|
20-Jun-2010 |
Alexander Motin <mav@FreeBSD.org> |
Implement new event timers infrastructure. It provides unified APIs for writing event timer drivers, for choosing best possible drivers by machine independent code and for operating them to supply kernel with hardclock(), statclock() and profclock() events in unified fashion on various hardware. Infrastructure provides support for both per-CPU (independent for every CPU core) and global timers in periodic and one-shot modes. MI management code at this moment uses only periodic mode, but one-shot mode use planned for later, as part of tickless kernel project. For this moment infrastructure used on i386 and amd64 architectures. Other archs are welcome to follow, while their current operation should not be affected. This patch updates existing drivers (i8254, RTC and LAPIC) for the new order, and adds event timers support into the HPET driver. These drivers have different capabilities: LAPIC - per-CPU timer, supports periodic and one-shot operation, may freeze in C3 state, calibrated on first use, so may be not exactly precise. HPET - depending on hardware can work as per-CPU or global, supports periodic and one-shot operation, usually provides several event timers. i8254 - global, limited to periodic mode, because same hardware used also as time counter. RTC - global, supports only periodic mode, set of frequencies in Hz limited by powers of 2. Depending on hardware capabilities, drivers preferred in following orders, either LAPIC, HPETs, i8254, RTC or HPETs, LAPIC, i8254, RTC. User may explicitly specify wanted timers via loader tunables or sysctls: kern.eventtimer.timer1 and kern.eventtimer.timer2. If requested driver is unavailable or unoperational, system will try to replace it. If no more timers available or "NONE" specified for second, system will operate using only one timer, multiplying it's frequency by few times and uing respective dividers to honor hz, stathz and profhz values, set during initial setup.
|
#
b9cd2f77 |
|
08-Jun-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the MD support for PCI message signalled interrupts to the x86 tree as it is identical for i386 and amd64.
|
#
2465e30f |
|
08-Jun-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the machine check support code to the x86 tree since it is identical on i386 and amd64. Requested by: alc
|
#
53a908cb |
|
08-Jun-2010 |
John Baldwin <jhb@FreeBSD.org> |
Move the I/O APIC code to the x86 tree since it is identical on i386 and amd64.
|
#
fa1ed4bd |
|
23-May-2010 |
Alexander Motin <mav@FreeBSD.org> |
Unify local_apic.c for x86 archs,
|
#
c8d050b5 |
|
16-Apr-2010 |
Fabien Thomas <fabient@FreeBSD.org> |
MFC r206089, r206684: - Support for uncore counting events: one fixed PMC with the uncore domain clock, 8 programmable PMC. - Westmere based CPU (Xeon 5600, Corei7 980X) support. - New man pages with events list for core and uncore. - Updated Corei7 events with Intel 253669-033US December 2009 doc. There is some removed events in the documentation, they have been kept in the code but documented in the man page as obsolete. - Offcore response events can be setup with rsp token. Sponsored by: NETASQ
|
#
4ccf64eb |
|
06-Apr-2010 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
MFC r205014,205015: Provide groundwork for 32-bit binary compatibility on non-x86 platforms, for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32 option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts of the kernel and enhances the freebsd32 compatibility code to support big-endian platforms. This MFC is required for MFCs of later changes to the freebsd32 compatibility from HEAD. Requested by: kib
|
#
1fa7f10b |
|
02-Apr-2010 |
Fabien Thomas <fabient@FreeBSD.org> |
- Support for uncore counting events: one fixed PMC with the uncore domain clock, 8 programmable PMC. - Westmere based CPU (Xeon 5600, Corei7 980X) support. - New man pages with events list for core and uncore. - Updated Corei7 events with Intel 253669-033US December 2009 doc. There is some removed events in the documentation, they have been kept in the code but documented in the man page as obsolete. - Offcore response events can be setup with rsp token. Sponsored by: NETASQ
|
#
841c0c7e |
|
11-Mar-2010 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Provide groundwork for 32-bit binary compatibility on non-x86 platforms, for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32 option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts of the kernel and enhances the freebsd32 compatibility code to support big-endian platforms. Reviewed by: kib, jhb
|
#
aa3d547d |
|
01-Mar-2010 |
Xin LI <delphij@FreeBSD.org> |
MFC x86emu/x86bios emulator and make previously i386 only dpms and vesa framebuffer driver, etc. work on FreeBSD/amd64. A significant amount of improvements were done by jkim@ during the recent months to make vesa(4) work better, over the initial code import. This work is based on OpenBSD's x86emu implementation and contributed by paradox <ddkprog yahoo com> and swell.k at gmail com. Hopefully I have stolen all their work to 8-STABLE :) All bugs in this commit are mine, as usual.
|
#
2df4a3ea |
|
25-Feb-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Fix a mis-change about the compiling of atrtc.c. Sponsored by: Sandvine Incorporated Reported by: Giovanni Trematerra <giovannit dot trematerra at gmail dot com> MFC: 3 weeks X-MFC: r204309
|
#
32580301 |
|
25-Feb-2010 |
Attilio Rao <attilio@FreeBSD.org> |
Introduce the new kernel sub-tree x86 which should contain all the code shared and generalized between our current amd64, i386 and pc98. This is just an initial step that should lead to a more complete effort. For the moment, a very simple porting of cpufreq modules, BIOS calls and the whole MD specific ISA bus part is added to the sub-tree but ideally a lot of code might be added and more shared support should grow. Sponsored by: Sandvine Incorporated Reviewed by: emaste, kib, jhb, imp Discussed on: arch MFC: 3 weeks
|
#
646b3953 |
|
18-Feb-2010 |
Rebecca Cran <brucec@FreeBSD.org> |
MFC r203679: Remove the usb2_input_kbd directive that was missed during the renaming of the drivers in the usb2 stack. Approved by: rrs (mentor)
|
#
ac6be749 |
|
08-Feb-2010 |
Rebecca Cran <brucec@FreeBSD.org> |
Remove the usb2_input_kbd directive that was missed during the renaming of the drivers in the usb2 stack. Approved by: rrs (mentor)
|
#
5e860e7b |
|
20-Dec-2009 |
Andriy Gapon <avg@FreeBSD.org> |
MFC r199969: amdsbwd: new driver for AMD SB600/SB7xx watchdog timer
|
#
a1778929 |
|
05-Dec-2009 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
MFC r197518: lindev(4) [1] is supposed to be a collection of linux-specific pseudo devices that we also support, just not by default (thus only LINT or module builds by default). While currently there is only "/dev/full" [2], we are planning to see more in the future. We may decide to change the module/dependency logic in the future should the list grow too long. This is not part of linux.ko as also non-linux binaries like kFreeBSD userland or ports can make use of this as well. Suggested by: rwatson [1] (name) Submitted by: ed [2] Discussed with: markm, ed, rwatson, kib (weeks ago) Reviewed by: rwatson, brueffer (prev. version) PR: kern/68961
|
#
5022f21b |
|
30-Nov-2009 |
Andriy Gapon <avg@FreeBSD.org> |
amdsbwd: new driver for AMD SB600/SB7xx watchdog timer The hardware is compliant with WDRT specification, so I originally considered including generic WDRT watchdog support, but decided against it, because I couldn't find anyone to the code for me. WDRT seems to be not very popular. Besides, generic WDRT porbably requires a slightly different driver approach. Reviewed by: des, gavin, rpaulo MFC after: 3 weeks
|
#
3219f535 |
|
19-Oct-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Rewrite x86bios and update its dependent drivers. - Do not map entire real mode memory (1MB). Instead, we map IVT/BDA and ROM area separately. Most notably, ROM area is mapped as device memory (uncacheable) as it should be. User memory is dynamically allocated and free'ed with contigmalloc(9) and contigfree(9). Remove now redundant and potentially dangerous x86bios_alloc.c. If this emulator ever grows to support non-PC hardware, we may implement it with rman(9) later. - Move all host-specific initializations from x86emu_util.c to x86bios.c and remove now unnecessary x86emu_util.c. Currently, non-PC hardware is not supported. We may use bus_space(9) later when the KPI is fixed. - Replace all bzero() calls for emulated registers with more obviously named x86bios_init_regs(). This function also initializes DS and SS properly. - Add x86bios_get_intr(). This function checks if the interrupt vector is available for the platform. It is not necessary for PC-compatible hardware but it may be needed later. ;-) - Do not try turning off monitor if DPMS does not support the state. - Allocate stable memory for VESA OEM strings instead of just holding pointers to them. They may or may not be accessible always. Fix a memory leak of video mode table while I am here. - Add (experimental) BIOS POST call for vesa(4). This function calls VGA BIOS POST code from the current VGA option ROM. Some video controllers cannot save and restore the state properly even if it is claimed to be supported. Usually the symptom is blank display after resuming from suspend state. If the video mode does not match the previous mode after restoring, we try BIOS POST and force the known good initial state. Some magic was taken from NetBSD (and it was taken from vbetool, I believe.) - Add a loader tunable for vgapci(4) to give a hint to dpms(4) and vesa(4) to identify who owns the VESA BIOS. This is very useful for multi-display adapter setup. By default, the POST video controller is automatically probed and the tunable "hw.pci.default_vgapci_unit" is set to corresponding vgapci unit number. You may override it from loader but it is very unlikely to be necessary. Unfortunately only AGP/PCI/PCI-E controllers can be matched because ISA controller does not have necessary device IDs. - Fix a long standing bug in state save/restore function. The state buffer pointer should be ES:BX, not ES:DI according to VBE 3.0. If it ever worked, that's because BX was always zero. :-) - Clean up register initializations more clearer per VBE 3.0. - Fix a lot of style issues with vesa(4).
|
#
bbaa712c |
|
11-Oct-2009 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Scan for option ROMs on i386 and amd64 only.
|
#
4507f02e |
|
25-Sep-2009 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
lindev(4) [1] is supposed to be a collection of linux-specific pseudo devices that we also support, just not by default (thus only LINT or module builds by default). While currently there is only "/dev/full" [2], we are planning to see more in the future. We may decide to change the module/dependency logic in the future should the list grow too long. This is not part of linux.ko as also non-linux binaries like kFreeBSD userland or ports can make use of this as well. Suggested by: rwatson [1] (name) Submitted by: ed [2] Discussed with: markm, ed, rwatson, kib (weeks ago) Reviewed by: rwatson, brueffer (prev. version) PR: kern/68961 MFC after: 6 weeks
|
#
ed89577f |
|
24-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
r197444 unnecessarily changed positions of these files. Re-sort.
|
#
19de5df5 |
|
23-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Move sys/dev/x86bios to sys/compat/x86bios. It may not be optimal but it is clearly better than the old place. OK'ed by: delphij, paradox (ddkprog yahoo com)
|
#
2f66eb1e |
|
22-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Hide x86bios stuff in i386/amd64 specific files as atkbdc would get these stuff into build.
|
#
6abad12d |
|
21-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Automatically depend on x86emu when vesa or dpms is being built into kernel. With this change the user no longer need to remember building this option. Submitted by: swell.k at gmail.com
|
#
372c7337 |
|
21-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Enable s3pci on amd64 which works on top of VESA, and allow static building it into kernel on i386 and amd64. Submitted by: swell.k at gmail.com
|
#
ee5e90da |
|
09-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
- Teach vesa(4) and dpms(4) about x86emu. [1] - Add vesa kernel options for amd64. - Connect libvgl library and splash kernel modules to amd64 build. - Connect manual page dpms(4) to amd64 build. - Remove old vesa/dpms files. Submitted by: paradox <ddkprog yahoo com> [1], swell k at gmail.com (with some minor tweaks)
|
#
9b934d09 |
|
03-Sep-2009 |
Ed Schouten <ed@FreeBSD.org> |
Move libteken out of the syscons directory. I initially committed libteken to sys/dev/syscons/teken, but now that I'm working on a console driver myself, I noticed this was not a good decision. Move it to sys/teken to make it easier for other drivers to use a terminal emulator. Also list teken.c in sys/conf/files, instead of listing it in all the files.arch files separately.
|
#
df849145 |
|
23-Jun-2009 |
Rui Paulo <rpaulo@FreeBSD.org> |
* Driver for ACPI WMI (Windows Management Instrumentation) * Driver for ACPI HP extra functionations, which required ACPI WMI driver. Submitted by: Michael <freebsdusb at bindone.de> Approved by: re MFC after: 2 weeks
|
#
9dc0b3d5 |
|
13-May-2009 |
John Baldwin <jhb@FreeBSD.org> |
Implement simple machine check support for amd64 and i386. - For CPUs that only support MCE (the machine check exception) but not MCA (i.e. Pentium), all this does is print out the value of the machine check registers and then panic when a machine check exception occurs. - For CPUs that support MCA (the machine check architecture), the support is a bit more involved. - First, there is limited support for decoding the CPU-independent MCA error codes in the kernel, and the kernel uses this to output a short description of any machine check events that occur. - When a machine check exception occurs, all of the MCx banks on the current CPU are scanned and any events are reported to the console before panic'ing. - To catch events for correctable errors, a periodic timer kicks off a task which scans the MCx banks on all CPUs. The frequency of these checks is controlled via the "hw.mca.interval" sysctl. - Userland can request an immediate scan of the MCx banks by writing a non-zero value to "hw.mca.force_scan". - If any correctable events are encountered, the appropriate details are stored in a 'struct mca_record' (defined in <machine/mca.h>). The "hw.mca.count" is a count of such records and each record may be queried via the "hw.mca.records" tree by specifying the record index (0 .. count - 1) as the next name in the MIB similar to using PIDs with the kern.proc.* sysctls. The idea is to export machine check events to userland for more detailed processing. - The periodic timer and hw.mca sysctls are only present if the CPU supports MCA. Discussed with: emaste (briefly) MFC after: 1 month
|
#
2c66ccca |
|
01-Apr-2009 |
Konstantin Belousov <kib@FreeBSD.org> |
Save and restore segment registers on amd64 when entering and leaving the kernel on amd64. Fill and read segment registers for mcontext and signals. Handle traps caused by restoration of the invalidated selectors. Implement user-mode creation and manipulation of the process-specific LDT descriptors for amd64, see sysarch(2). Implement support for TSS i/o port access permission bitmap for amd64. Context-switch LDT and TSS. Do not save and restore segment registers on the context switch, that is handled by kernel enter/leave trampolines now. Remove segment restore code from the signal trampolines for freebsd/amd64, freebsd/ia32 and linux/i386 for the same reason. Implement amd64-specific compat shims for sysarch. Linuxolator (temporary ?) switched to use gsbase for thread_area pointer. TODO: Currently, gdb is not adapted to show segment registers from struct reg. Also, no machine-depended ptrace command is added to set segment registers for debugged process. In collaboration with: pho Discussed with: peter Reviewed by: jhb Linuxolator tested by: dchagin
|
#
24cd3710 |
|
28-Mar-2009 |
Michael Reifenberger <mr@FreeBSD.org> |
Add support for Phenom (Family 10h) to cpufreq. Its a newer version provided by the author than in the PR. PR: kern/128575 Submitted by: Gen Otsuji annona2 [at] gmail.com
|
#
b78d0925 |
|
26-Mar-2009 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Sigh, not my day. Check-in the update version that didn't have the linux_compat mistakes.
|
#
d2b2128a |
|
26-Mar-2009 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add stuff to support upcoming BMC/IPMI flashing of newer Dell machine via the Linux tool. - Add Linux shim to ipmi(4) - Create a partitions file to linprocfs to make Linux fdisk see disks. This file is dynamic so we can see disks come and go. - Convert msdosfs to vfat in mtab since Linux uses that for msdosfs. - In the Linux mount path convert vfat passed in to msdosfs so Linux mount works on FreeBSD. Note that tasting works so that if da0 is a msdos file system /compat/linux/bin/mount /dev/da0 /mnt works. - fix a 64it bug for l_off_t. Grabing sh, mount, fdisk, df from Linux, creating a symlink of mtab to /compat/linux/etc/mtab and then some careful unpacking of the Linux bmc update tool and hacking makes it work on newer Dell boxes. Note, probably if you can't figure out how to do this, then you probably shouldn't be doing it :-)
|
#
c66d2b38 |
|
16-Mar-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Initial suspend/resume support for amd64. This code is heavily inspired by Takanori Watanabe's experimental SMP patch for i386 and large portion was shamelessly cut and pasted from Peter Wemm's AP boot code.
|
#
fc1f75e5 |
|
13-Mar-2009 |
Rui Paulo <rpaulo@FreeBSD.org> |
Rename the k8temp driver to amdtemp. MFC after: 2 weeks
|
#
802cb57e |
|
28-Feb-2009 |
Ed Schouten <ed@FreeBSD.org> |
Add memmove() to the kernel, making the kernel compile with Clang. When copying big structures, LLVM generates calls to memmove(), because it may not be able to figure out whether structures overlap. This caused linker errors to occur. memmove() is now implemented using bcopy(). Ideally it would be the other way around, but that can be solved in the future. On ARM we don't do add anything, because it already has memmove(). Discussed on: arch@ Reviewed by: rdivacky
|
#
719085d9 |
|
15-Feb-2009 |
Andrew Thompson <thompsa@FreeBSD.org> |
Pull in kbd.c with usb2_input_kbd, just like ukbd.
|
#
129dec42 |
|
23-Jan-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
- Add few VIA bridges to agp_via.c and connect it to amd64 build as they support Intel Core/Core 2 and VIA Nano processors. - Align "optional agp" in conf/files.* for consistency while I am here.
|
#
9045c736 |
|
12-Jan-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Connect padlock(4) to amd64 build for VIA Nano processors.
|
#
b4b1c516 |
|
01-Jan-2009 |
Ed Schouten <ed@FreeBSD.org> |
Replace syscons terminal renderer by a new renderer that uses libteken. Some time ago I started working on a library called libteken, which is terminal emulator. It does not buffer any screen contents, but only keeps terminal state, such as cursor position, attributes, etc. It should implement all escape sequences that are implemented by the cons25 terminal emulator, but also a fair amount of sequences that are present in VT100 and xterm. A lot of random notes, which could be of interest to users/developers: - Even though I'm leaving the terminal type set to `cons25', users can do experiments with placing `xterm-color' in /etc/ttys. Because we only implement a subset of features of xterm, this may cause artifacts. We should consider extending libteken, because in my opinion xterm is the way to go. Some missing features: - Keypad application mode (DECKPAM) - Character sets (SCS) - libteken is filled with a fair amount of assertions, but unfortunately we cannot go into the debugger anymore if we fail them. I've done development of this library almost entirely in userspace. In sys/dev/syscons/teken there are two applications that can be helpful when debugging the code: - teken_demo: a terminal emulator that can be started from a regular xterm that emulates a terminal using libteken. This application can be very useful to debug any rendering issues. - teken_stress: a stress testing application that emulates random terminal output. libteken has literally survived multiple terabytes of random input. - libteken also includes support for UTF-8, but unfortunately our input layer and font renderer don't support this. If users want to experiment with UTF-8 support, they can enable `TEKEN_UTF8' in teken.h. If you recompile your kernel or the teken_demo application, you can hold some nice experiments. - I've left PC98 the way it is right now. The PC98 platform has a custom syscons renderer, which supports some form of localised input. Maybe we should port PC98 to libteken by the time syscons supports UTF-8? - I've removed the `dumb' terminal emulator. It has been broken for years. It hasn't survived the `struct proc' -> `struct thread' conversion. - To prevent confusion among people that want to hack on libteken: unlike syscons, the state machines that parse the escape sequences are machine generated. This means that if you want to add new escape sequences, you have to add an entry to the `sequences' file. This will cause new entries to be added to `teken_state.h'. - Any rendering artifacts that didn't occur prior to this commit are by accident. They should be reported to me, so I can fix them. Discussed on: current@, hackers@ Discussed with: philip (at 25C3)
|
#
33644623 |
|
01-Dec-2008 |
Sam Leffler <sam@FreeBSD.org> |
Switch to ath hal source code. Note this removes the ath_hal module; the ath module now brings in the hal support. Kernel config files are almost backwards compatible; supplying device ath_hal gives you the same chip support that the binary hal did but you must also include options AH_SUPPORT_AR5416 to enable the extended format descriptors used by 11n parts. It is now possible to control the chip support included in a build by specifying exactly which chips are to be supported in the config file; consult ath_hal(4) for information.
|
#
0cfab8dd |
|
27-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and model 0x1C (Atom). In these CPUs, the actual numbers, kinds and widths of PMCs present need to queried at run time. Support for specific "architectural" events also needs to be queried at run time. Model 0xE CPUs support programmable PMCs, subsequent CPUs additionally support "fixed-function" counters. - Use event names that are close to vendor documentation, taking in account that: - events with identical semantics on two or more CPUs in this family can have differing names in vendor documentation, - identical vendor event names may map to differing events across CPUs, - each type of CPU supports a different subset of measurable events. Fixed-function and programmable counters both use the same vendor names for events. The use of a class name prefix ("iaf-" or "iap-" respectively) permits these to be distinguished. - In libpmc, refactor pmc_name_of_event() into a public interface and an internal helper function, for use by log handling code. - Minor code tweaks: staticize a global, freshen a few comments. Tested by: gnn
|
#
e829eb6d |
|
09-Nov-2008 |
Joseph Koshy <jkoshy@FreeBSD.org> |
- Separate PMC class dependent code from other kinds of machine dependencies. A 'struct pmc_classdep' structure describes operations on PMCs; 'struct pmc_mdep' contains one or more 'struct pmc_classdep' structures depending on the CPU in question. Inside PMC class dependent code, row indices are relative to the PMCs supported by the PMC class; MI code in "hwpmc_mod.c" translates global row indices before invoking class dependent operations. - Augment the OP_GETCPUINFO request with the number of PMCs present in a PMC class. - Move code common to Intel CPUs to file "hwpmc_intel.c". - Move TSC handling to file "hwpmc_tsc.c".
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
ae528485 |
|
22-Sep-2008 |
David E. O'Brien <obrien@FreeBSD.org> |
Add freebsd32 compat shims for ioctl(2) MDIOCATTACH, MDIOCDETACH, MDIOCQUERY, and MDIOCLIST requests.
|
#
e085f869 |
|
08-Aug-2008 |
Stanislav Sedov <stas@FreeBSD.org> |
- Add cpuctl(4) pseudo-device driver to provide access to some low-level features of CPUs like reading/writing machine-specific registers, retrieving cpuid data, and updating microcode. - Add cpucontrol(8) utility, that provides userland access to the features of cpuctl(4). - Add subsequent manpages. The cpuctl(4) device operates as follows. The pseudo-device node cpuctlX is created for each cpu present in the systems. The pseudo-device minor number corresponds to the cpu number in the system. The cpuctl(4) pseudo- device allows a number of ioctl to be preformed, namely RDMSR/WRMSR/CPUID and UPDATE. The first pair alows the caller to read/write machine-specific registers from the correspondent CPU. cpuid data could be retrieved using the CPUID call, and microcode updates are applied via UPDATE. The permissions are inforced based on the pseudo-device file permissions. RDMSR/CPUID will be allowed when the caller has read access to the device node, while WRMSR/UPDATE will be granted only when the node is opened for writing. There're also a number of priv(9) checks. The cpucontrol(8) utility is intened to provide userland access to the cpuctl(4) device features. The utility also allows one to apply cpu microcode updates. Currently only Intel and AMD cpus are supported and were tested. Approved by: kib Reviewed by: rpaulo, cokane, Peter Jeremy MFC after: 1 month
|
#
0051271e |
|
21-Apr-2008 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make genclock standard on all platforms. Thanks to: grehan & marcel for platform support on ia64 and ppc.
|
#
36bff1eb |
|
14-Apr-2008 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Convert amd64 and i386 to share the atrtc device driver.
|
#
6f15a9e5 |
|
12-Apr-2008 |
Rui Paulo <rpaulo@FreeBSD.org> |
Connect k8temp(4) to the build.
|
#
593c8734 |
|
03-Feb-2008 |
Scott Long <scottl@FreeBSD.org> |
Remove the rr232x driver. It has been superceded by the hptrr driver.
|
#
b063a422 |
|
14-Dec-2007 |
Scott Long <scottl@FreeBSD.org> |
Add the 'hptrr' driver for supporting the following Highpoint RocketRAID cards: o RocketRAID 172x series o RocketRAID 174x series o RocketRAID 2210 o RocketRAID 222x series o RocketRAID 2240 o RocketRAID 230x series o RocketRAID 231x series o RocketRAID 232x series o RocketRAID 2340 o RocketRAID 2522 Many thanks to Highpoint for their continued support of FreeBSD. Submitted by: Highpoint
|
#
dbfb54ff |
|
09-Dec-2007 |
Alan Cox <alc@FreeBSD.org> |
Eliminate compilation warnings due to the use of non-static inlines through the introduction and use of the __gnu89_inline attribute. Submitted by: bde (i386) MFC after: 3 days
|
#
3c90d1ea |
|
02-Dec-2007 |
Robert Watson <rwatson@FreeBSD.org> |
Break out stack(9) from ddb(4): - Introduce per-architecture stack_machdep.c to hold stack_save(9). - Introduce per-architecture machine/stack.h to capture any common definitions required between db_trace.c and stack_machdep.c. - Add new kernel option "options STACK"; we will build in stack(9) if it is defined, or also if "options DDB" is defined to provide compatibility with existing users of stack(9). Add new stack_save_td(9) function, which allows the capture of a stacktrace of another thread rather than the current thread, which the existing stack_save(9) was limited to. It requires that the thread be neither swapped out nor running, which is the responsibility of the consumer to enforce. Update stack(9) man page. Build tested: amd64, arm, i386, ia64, powerpc, sparc64, sun4v Runtime tested: amd64 (rwatson), arm (cognet), i386 (rwatson)
|
#
dbac8ff4 |
|
12-Nov-2007 |
John Baldwin <jhb@FreeBSD.org> |
Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was bumped to 800004 to note the change though userland apps should not be affected since they use <sys/agpio.h> rather than the headers in sys/dev/agp. Discussed with: anholt Repocopy by: simon
|
#
03734771 |
|
08-Nov-2007 |
Benjamin Close <benjsc@FreeBSD.org> |
Link wpi(4) into the build. This includes: o mtree (for legal/intel_wpi) o manpage for i386/amd64 archs o module for i386/amd64 archs o NOTES for i386/amd64 archs Approved by: mlaier (comentor)
|
#
e702bc74 |
|
07-Nov-2007 |
Rui Paulo <rpaulo@FreeBSD.org> |
Connect asmc to the build infrastructure. Approved by: njl (mentor) Reviewed by: njl (mentor)
|
#
d5566384 |
|
25-Oct-2007 |
Peter Wemm <peter@FreeBSD.org> |
Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not refactored it to be a generic device. Instead of being part of the standard kernel, there is now a 'nvram' device for i386/amd64. It is in DEFAULTS like io and mem, and can be turned off with 'nodevice nvram'. This matches the previous behavior when it was first committed.
|
#
a9d185b2 |
|
25-Oct-2007 |
David E. O'Brien <obrien@FreeBSD.org> |
Align.
|
#
9f05d312 |
|
15-Oct-2007 |
Alexander Leidinger <netchild@FreeBSD.org> |
Backout sensors framework. Requested by: phk Discussed on: cvs-all
|
#
989500bf |
|
14-Oct-2007 |
Alexander Leidinger <netchild@FreeBSD.org> |
Import it(4) and lm(4), supporting most popular Super I/O Hardware Monitors. Submitted by: Constantine A. Murenin <cnst@FreeBSD.org> Sponsored by: Google Summer of Code 2007 (GSoC2007/cnst-sensors) Mentored by: syrinx Tested by: many OKed by: kensmith Obtained from: OpenBSD (parts)
|
#
83d18f22 |
|
15-Aug-2007 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Add a driver for the on-die digital thermal sensor found on Intel Core and newer CPUs (including Core 2 and Core / Core 2 based Xeons). The driver attaches to each cpu device and creates a sysctl node in that device's sysctl context (dev.cpu.N.temperature). When invoked, the handler binds to the appropriate CPU to ensure a correct reading. Submitted by: Rui Paulo <rpaulo@fnop.net> Sponsored by: Google Summer of Code 2007 Tested by: des, marcus, Constantine A. Murenin, Ian FREISLICH Approved by: re (kensmith) MFC after: 3 weeks
|
#
a9431a52 |
|
05-Jul-2007 |
Peter Wemm <peter@FreeBSD.org> |
Temporarily turn nowerror on for i386 and amd64 pmap.c. I'd like to study exactly what effect the options cause to the code with gcc these days. Approved by: re (rwatson)
|
#
b2630c29 |
|
02-Jul-2007 |
George V. Neville-Neil <gnn@FreeBSD.org> |
Commit the change from FAST_IPSEC to IPSEC. The FAST_IPSEC option is now deprecated, as well as the KAME IPsec code. What was FAST_IPSEC is now IPSEC. Approved by: re Sponsored by: Secure Computing
|
#
2b39bb4f |
|
10-Jun-2007 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Use default options for default partitioning schemes, rather than making the relevant files standard. This avoids duplication and makes it easier to override/disable unwanted schemes. Since ARM doesn't have a DEFAULTS configuration file, leave the source files for the BSD and MBR partitioning schemes in files.arm for now.
|
#
a96811b1 |
|
23-May-2007 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix the dependency for the linux_support.s, explicitely add linux_assym.h. Reported by: rwatson In collaboration with: rdivacky Sponsored by: Google SoC 2007
|
#
1c182de9 |
|
23-May-2007 |
Konstantin Belousov <kib@FreeBSD.org> |
Move futex support code from <arch>/support.s into linux compat directory. Implement all futex atomic operations in assembler to not depend on the fuword() that does not allow to distinguish between -1 and failure return. Correctly return 0 from atomic operations on success. In collaboration with: rdivacky Tested by: Scot Hetzel <swhetzel gmail com>, Milos Vyletel <mvyletel mzm cz> Sponsored by: Google SoC 2007
|
#
89c40e5f |
|
05-Apr-2007 |
Alexander Kabaev <kan@FreeBSD.org> |
Be more conservative and compile libkern/memset.c only on architectures than need it. These are i386, amd64 and powerpc so far.
|
#
2c298b17 |
|
17-Dec-2006 |
Matt Jacob <mjacob@FreeBSD.org> |
opt_ah.h ends up copied into a kernelcompile directory in some aches as a read-only file. In a number of cases this has led to compiles failing- usually due to some strange NFS drift which thinks that the opt_ah.h in the compile directory is out of date wrt the source it is copied from. When the copy is executed again, it fails because the target is read-only. Oops. Modify the compile hooks avoid this. Discussed with a while back with: Sam Leffler
|
#
41849009 |
|
13-Nov-2006 |
John Baldwin <jhb@FreeBSD.org> |
MD support for PCI Message Signalled Interrupts on amd64 and i386: - Add a new apic_alloc_vectors() method to the local APIC support code to allocate N contiguous IDT vectors (aligned on a M >= N boundary). This function is used to allocate IDT vectors for a group of MSI messages. - Add MSI and MSI-X PICs. The PIC code here provides methods to manage edge-triggered MSI messages as x86 interrupt sources. In addition to the PIC methods, msi.c also includes methods to allocate and release MSI and MSI-X messages. For x86, we allow for up to 128 different MSI IRQs starting at IRQ 256 (IRQs 0-15 are reserved for ISA IRQs, 16-254 for APIC PCI IRQs, and IRQ 255 is reserved). - Add pcib_(alloc|release)_msi[x]() methods to the MD x86 PCI bridge drivers to bubble the request up to the nexus driver. - Add pcib_(alloc|release)_msi[x]() methods to the x86 nexus drivers that ask the MSI PIC code to allocate resources and IDT vectors. MFC after: 2 months
|
#
3680a419 |
|
29-Oct-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
Backout the linux aio stuff. Several problems where identified and the dynamic nature (if no native aio code is available, the linux part returns ENOSYS because of missing requisites) should be solved differently than it is. All this will be done in P4. Not included in this commit is a backout of the changes to the native aio code (removing static in some places). Those changes (and some more) will also be needed when the reworked linux aio stuff will reenter the tree. Requested by: rwatson Discussed with: rwatson
|
#
837f167e |
|
23-Oct-2006 |
Ruslan Ermilov <ru@FreeBSD.org> |
Move "device splash" back to MI NOTES and "files", it's MI.
|
#
663cf7fe |
|
23-Oct-2006 |
Ruslan Ermilov <ru@FreeBSD.org> |
Move MI parts of syscons into MI "files".
|
#
6a1162d4 |
|
15-Oct-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
MFP4 (with some minor changes): Implement the linux_io_* syscalls (AIO). They are only enabled if the native AIO code is available (either compiled in to the kernel or as a module) at the time the functions are used. If the AIO stuff is not available there will be a ENOSYS. From the submitter: ---snip--- DESIGN NOTES: 1. Linux permits a process to own multiple AIO queues (distinguished by "context"), but FreeBSD creates only one single AIO queue per process. My code maintains a request queue (STAILQ of queue(3)) per "context", and throws all AIO requests of all contexts owned by a process into the single FreeBSD per-process AIO queue. When the process calls io_destroy(2), io_getevents(2), io_submit(2) and io_cancel(2), my code can pick out requests owned by the specified context from the single FreeBSD per-process AIO queue according to the per-context request queues maintained by my code. 2. The request queue maintained by my code stores contrast information between Linux IO control blocks (struct linux_iocb) and FreeBSD IO control blocks (struct aiocb). FreeBSD IO control block actually exists in userland memory space, required by FreeBSD native aio_XXXXXX(2). 3. It is quite troubling that the function io_getevents() of libaio-0.3.105 needs to use Linux-specific "struct aio_ring", which is a partial mirror of context in user space. I would rather take the address of context in kernel as the context ID, but the io_getevents() of libaio forces me to take the address of the "ring" in user space as the context ID. To my surprise, one comment line in the file "io_getevents.c" of libaio-0.3.105 reads: Ben will hate me for this REFERENCE: 1. Linux kernel source code: http://www.kernel.org/pub/linux/kernel/v2.6/ (include/linux/aio_abi.h, fs/aio.c) 2. Linux manual pages: http://www.kernel.org/pub/linux/docs/manpages/ (io_setup(2), io_destroy(2), io_getevents(2), io_submit(2), io_cancel(2)) 3. Linux Scalability Effort: http://lse.sourceforge.net/io/aio.html The design notes: http://lse.sourceforge.net/io/aionotes.txt 4. The package libaio, both source and binary: http://rpmfind.net/linux/rpm2html/search.php?query=libaio Simple transparent interface to Linux AIO system calls. 5. Libaio-oracle: http://oss.oracle.com/projects/libaio-oracle/ POSIX AIO implementation based on Linux AIO system calls (depending on libaio). ---snip--- Submitted by: Li, Xiao <intron@intron.ac>
|
#
d72a0786 |
|
22-Sep-2006 |
John Baldwin <jhb@FreeBSD.org> |
Update the ipmi(4) driver: - Split out the communication protocols into their own files and use a couple of function pointers in the softc that the commuication protocols setup in their own attach routine. - Add support for the SSIF interface (talking to IPMI over SMBus). - Add an ACPI attachment. - Add a PCI attachment that attaches to devices with the IPMI interface subclass. - Split the ISA attachment out into its own file: ipmi_isa.c. - Change the code to probe the SMBIOS table for an IPMI entry to just use pmap_mapbios() to map the table in rather than trying to setup a fake resource on an isa device and then activating the resource to map in the table. - Make bus attachments leaner by adding attach functions for each communication interface (ipmi_kcs_attach(), ipmi_smic_attach(), etc.) that setup per-interface data. - Formalize the model used by the driver to handle requests by adding an explicit struct ipmi_request object that holds the state of a given request and reply for the entire lifetime of the request. By bundling the request into an object, it is easier to add retry logic to the various communication backends (as well as eventually support BT mode which uses a slightly different message format than KCS, SMIC, and SSIF). - Add a per-softc lock and remove D_NEEDGIANT as the driver is now MPSAFE. - Add 32-bit compatibility ioctl shims so you can use a 32-bit ipmitool on FreeBSD/amd64. - Add ipmi(4) to i386 and amd64 NOTES. Submitted by: ambrisko (large portions of 2 and 3) Sponsored by: IronPort Systems, Yahoo! MFC after: 6 days
|
#
f031f0c0 |
|
05-Sep-2006 |
Eric Anholt <anholt@FreeBSD.org> |
Include agp_i810.c in amd64 AGP builds to get support for the Intel 915 Express chipsets. PR: kern/93676 Submitted by: Jan Blaha <Jan.Blaha@unet.cz> MFC after: 1 week
|
#
9b44bfc5 |
|
14-Aug-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
Add the linux 2.6.x stuff (not used by default!): - TLS - complete - pid/tid mangling - complete - thread area - complete - futexes - complete with issues - clone() extension - complete with some possible minor issues - mq*/timer*/clock* stuff - complete but untested and the mq* stuff is disabled when not build as part of the kernel with native FreeBSD mq* support (module support for this will come later) Tested with: - linux-firefox - works, tested - linux-opera - works, tested - linux-realplay - doesnt work, issue with futexes - linux-skype - doesnt work, issue with futexes - linux-rt2-demo - works, tested - linux-acroread - doesnt work, unknown reason (coredump) and sometimes issue with futexes - various unix utilities in linux-base-gentoo3 and linux-base-fc4: everything tried worked On amd64 not everything is supported like on i386, the catchup is planned for later when the remaining bugs in the new functions are fixed. To test this new stuff, you have to run sysctl compat.linux.osrelease=2.6.16 to switch back use sysctl compat.linux.osrelease=2.4.2 Don't switch while running a linux program, strange things may or may not happen. Sponsored by: Google SoC 2006 Submitted by: rdivacky Some suggestions/help by: jhb, kib, manu@NetBSD.org, netchild
|
#
302981e7 |
|
29-Jul-2006 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Remove sio(4) and related options from MI files to amd64, i386 and pc98 MD files. Remove nodevice and nooption lines specific to sio(4) from ia64, powerpc and sparc64 NOTES. There were no such lines for arm yet. sio(4) is usable on less than half the platforms, not counting a future mips platform. Its presence in MI files is therefore increasingly becoming a burden.
|
#
bfc788c2 |
|
26-Jun-2006 |
David E. O'Brien <obrien@FreeBSD.org> |
Add a pure open source nForce Ethernet driver, under BSDL. This driver was ported from OpenBSD by Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp> and posted at http://www.se.hiroshima-u.ac.jp/~shigeaki/software/freebsd-nfe.html It was additionally cleaned up by me. It is still a work-in-progress and thus is purposefully not in GENERIC. And it conflicts with nve(4), so only one should be loaded.
|
#
741367d5 |
|
18-May-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add in a bunch of things to the mfi driver: - Linux ioctl support, with the other Linux changes MegaCli will run if you mount linprocfs & linsysfs then set sysctl compat.linux.osrelease=2.6.12 or similar. This works on i386. It should work on amd64 but not well tested yet. StoreLib may or may not work. Remember to kldload mfi_linux. - Add in AEN (Async Event Notification) support so we can get messages from the firmware when something happens. Not all messages are in defined in event detail. Use event_log to try to figure out what happened. - Try to implement something like SIGIO for StoreLib. Since mrmonitor doesn't work right I can't fully test it. StoreLib works best with the rh9 base. In theory mrmonitor isn't needed due to native driver support of AEN :-) Now we can configure and monitor the RAID better. Submitted by: IronPort Systems.
|
#
32397ce0 |
|
09-May-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add in linsysfs. A linux 2.6 like sys filesystem to pacify the Linux LSI MegaRAID SAS utility. Sponsored by: IronPort Systems Man page help from: brueffer
|
#
f4eb4717 |
|
07-May-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
- change the example of compiling only specific modules to not contain the linux module, since it is not cross-platform - move linprocfs from "files" and "options" to architecture specific files, since it only makes sense to build this for those architectures, where we also have a linuxolator - disable the build of the linuxolator on our tier-2 architecture "Alpha": * we don't have a linux_base port which supports Alpha and at the same time is not outdated/obsoleted upstream/in a good condition/ currently working * the upcomming new default linux base port is based upon Fedora Core 3 (security support via http://www.fedoralegacy.org), which isn't available for Alpha (like the current default linux base port which is based upon Red Hat 8) * nobody answered my request for testing it ~1 month ago on current@ and alpha@ (it doesn't surprises me, see above) * a SoC student wouldn't have to waste time on something which nobody is willing to test This does not remove the alpha specific MD files of the linuxolator yet. Discussed on: arch (mostly silence) Spiritual support by: scottl
|
#
27aafcda |
|
27-Apr-2006 |
Scott Long <scottl@FreeBSD.org> |
Enable the rr232x driver for amd64.
|
#
cea4d875 |
|
24-Apr-2006 |
Marcel Moolenaar <marcel@FreeBSD.org> |
o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front- end for isa(4). o Add a seperate bus frontend for acpi(4) and allow ISA DMA for it when ISA is configured in the kernel. This allows acpi(4) attachments in non-ISA configurations, as is possible for ia64. o Add a seperate bus frontend for pci(4) and detect known single port parallel cards. o Merge PC98 specific changes under pc98/cbus into the MI driver. The changes are minor enough for conditional compilation and in this form invites better abstraction. o Have ppc(4) usabled on all platforms, now that ISA specifics are untangled enough.
|
#
c0345a84 |
|
20-Apr-2006 |
Peter Wemm <peter@FreeBSD.org> |
Introduce minidumps. Full physical memory crash dumps are still available via the debug.minidump sysctl and tunable. Traditional dumps store all physical memory. This was once a good thing when machines had a maximum of 64M of ram and 1GB of kvm. These days, machines often have many gigabytes of ram and a smaller amount of kvm. libkvm+kgdb don't have a way to access physical ram that is not mapped into kvm at the time of the crash dump, so the extra ram being dumped is mostly wasted. Minidumps invert the process. Instead of dumping physical memory in in order to guarantee that all of kvm's backing is dumped, minidumps instead dump only memory that is actively mapped into kvm. amd64 has a direct map region that things like UMA use. Obviously we cannot dump all of the direct map region because that is effectively an old style all-physical-memory dump. Instead, introduce a bitmap and two helper routines (dump_add_page(pa) and dump_drop_page(pa)) that allow certain critical direct map pages to be included in the dump. uma_machdep.c's allocator is the intended consumer. Dumps are a custom format. At the very beginning of the file is a header, then a copy of the message buffer, then the bitmap of pages present in the dump, then the final level of the kvm page table trees (2MB mappings are expanded into a 4K page mappings), then the sparse physical pages according to the bitmap. libkvm can now conveniently access the kvm page table entries. Booting my test 8GB machine, forcing it into ddb and forcing a dump leads to a 48MB minidump. While this is a best case, I expect minidumps to be in the 100MB-500MB range. Obviously, never larger than physical memory of course. minidumps are on by default. It would want be necessary to turn them off if it was necessary to debug corrupt kernel page table management as that would mess up minidumps as well. Both minidumps and regular dumps are supported on the same machine.
|
#
8d96e455 |
|
05-Mar-2006 |
Yaroslav Tykhiy <ytykhiy@gmail.com> |
Retire NETSMBCRYPTO as a kernel option and make its functionality enabled by default in NETSMB and smbfs.ko. With the most of modern SMB providers requiring encryption by default, there is little sense left in keeping the crypto part of NETSMB optional at the build time. This will also return smbfs.ko to its former properties users are rather accustomed to. Discussed with: freebsd-stable, re (scottl) Not objected by: bp, tjr (silence) MFC after: 5 days
|
#
1c204a57 |
|
13-Feb-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Tie the ipmi driver into the i386/amd64 builds.
|
#
084500bc |
|
24-Jan-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add in the Linux IOCTL shim and create the megadev0 device so Linux LSI MegaRaid tools can run on FreeBSD until Linux emulation. Add in the Linux IOCTL shim and create the megadev0 device so Linux LSI MegaRaid tools can run on FreeBSD until Linux emulation. Add glue to build the modules but don't tie it into the build yet until I test it from the CVS repo. via the mirror on an amd64 machine. Tie this into the Linux32 emulation on amd64 so the tools can run on amd64 kernel. Cleaned up by: ps (amr_linux.c)
|
#
848c454c |
|
07-Dec-2005 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add BPF Just-In-Time compiler support for ng_bpf(4). The sysctl is changed from net.bpf.jitter.enable to net.bpf_jitter.enable and this controls both bpf(4) and ng_bpf(4) now.
|
#
ae275efc |
|
05-Dec-2005 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add experimental BPF Just-In-Time compiler for amd64 and i386. Use the following kernel configuration option to enable: options BPF_JITTER If you want to use bpf_filter() instead (e. g., debugging), do: sysctl net.bpf.jitter.enable=0 to turn it off. Currently BIOCSETWF and bpf_mtap2() are unsupported, and bpf_mtap() is partially supported because 1) no need, 2) avoid expensive m_copydata(9). Obtained from: WinPcap 3.1 (for i386)
|
#
a8e06f2a |
|
27-Nov-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Make config(8) understand ORed dependecies in "files*" and improve tracking of known devices. Bump config(8) version.
|
#
6d8200ff |
|
11-Nov-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Add /dev/speaker support to amd64. The following repo-copies were made (by Mark Murray): sys/i386/isa/spkr.c -> sys/dev/speaker/spkr.c sys/i386/include/speaker.h -> sys/dev/speaker/speaker.h share/man/man4/man4.i386/spkr.4 -> share/man/man4/spkr.4
|
#
dc8540a9 |
|
07-Sep-2005 |
Scott Long <scottl@FreeBSD.org> |
Hook up the hptmv driver for amd64. MFC After: 3 days
|
#
4bf21bfe |
|
21-Jul-2005 |
Peter Wemm <peter@FreeBSD.org> |
MFi386: add vpd driver (vital product data.. model & serial numbers etc)
|
#
6ec29713 |
|
21-Jul-2005 |
Peter Wemm <peter@FreeBSD.org> |
Add the ed driver for lint building. The PCI instances are still useful. In theory, there are no isa slots on any amd64/em64t systems, but it doesn't hurt to keep these tiny fragments compiling.
|
#
a52daa5f |
|
20-Jul-2005 |
Jung-uk Kim <jkim@FreeBSD.org> |
Fix smbios(4) and add support for amd64 Approved by: anholt (mentor)
|
#
712de323 |
|
18-Jul-2005 |
Paul Saab <ps@FreeBSD.org> |
Build p4tcc and est cpu frequency modules on amd64. Reviewed by: njl
|
#
62919d78 |
|
30-Jun-2005 |
Peter Wemm <peter@FreeBSD.org> |
Jumbo-commit to enhance 32 bit application support on 64 bit kernels. This is good enough to be able to run a RELENG_4 gdb binary against a RELENG_4 application, along with various other tools (eg: 4.x gcore). We use this at work. ia32_reg.[ch]: handle the 32 bit register file format, used by ptrace, procfs and core dumps. procfs_*regs.c: vary the format of proc/XXX/*regs depending on the client and target application. procfs_map.c: Don't print a 64 bit value to 32 bit consumers, or their sscanf fails. They expect an unsigned long. imgact_elf.c: produce a valid 32 bit coredump for 32 bit apps. sys_process.c: handle 32 bit consumers debugging 32 bit targets. Note that 64 bit consumers can still debug 32 bit targets. IA64 has got stubs for ia32_reg.c. Known limitations: a 5.x/6.x gdb uses get/setcontext(), which isn't implemented in the 32/64 wrapper yet. We also make a tiny patch to gdb pacify it over conflicting formats of ld-elf.so.1. Approved by: re
|
#
80a11093 |
|
29-Jun-2005 |
Peter Wemm <peter@FreeBSD.org> |
Sync i386->amd64. * Add ichwd (The Intel EM64T folks have an ICH) * Cosmetic comment syncs * Merge cpufreq change over to NOTES * add pbio (it compiles, but isn't useful since no boxes have ISA slots) * copy ath settings (note: wlan disabled here since its in global NOTES) * copy profiling, including fixing a previous i386->amd64 merge typo. Approved by: re (blanket i386 <-> amd64 sync/convergence)
|
#
b29a2e68 |
|
13-Jun-2005 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Include the puc(4) bus frontend for ppc(4) when both ppc and puc are configured. PR: kern/80737 Submitted by: David Taylor < davidt-fbsd at yadt dot co dot uk > Approved by: re (scottl) MFC after: 5 days
|
#
b16d349f |
|
11-Jun-2005 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Refactor the NETSMBCRYPTO option so that it does the same on all platforms. ARM is excluded as it doesn't yet have any crypto sources. Approved by: re (dwhite) MFC after: 1 day
|
#
520b6353 |
|
10-Jun-2005 |
Marius Strobl <marius@FreeBSD.org> |
- Hook up the new locations of the atkbdc(4), atkbd(4) and psm(4) source files after they were repo-copied to sys/dev/atkbdc. The sources of atkbdc(4) and its children were moved to the new location in preparation for adding an EBus front-end to atkbdc(4) for use on sparc64; i.e. in order to not further scatter them over the whole tree which would have been the result of adding atkbdc_ebus.c in e.g. sys/sparc64/ebus. Another reason for the repo-copies was that some of the sources were misfiled, e.g. sys/isa/atkbd_isa.c wasn't ISA-specific at all but for hanging atkbd(4) off of atkbdc(4) and was renamed to atkbd_atkbdc.c accordingly. Most of sys/isa/psm.c, i.e. expect for its PSMC PNP part, also isn't ISA-specific. - Separate the parts of atkbdc_isa.c which aren't actually ISA-specific but are shareable between different atkbdc(4) bus front-ends into atkbdc_subr.c (repo-copied from atkbdc_isa.c). While here use bus_generic_rl_alloc_resource() and bus_generic_rl_release_resource() respectively in atkbdc_isa.c instead of rolling own versions. - Add sparc64 MD bits to atkbdc(4) and atkbd(4) and an EBus front-end for atkbdc(4). PS/2 controllers and input devices are used on a couple of Sun OEM boards and occur on either the EBus or the ISA bus. Depending on the board it's either the only on-board mean to connect a keyboard and mouse or an alternative to either RS232 or USB devices. - Wrap the PSMC PNP part of psm.c in #ifdef DEV_ISA so it can be compiled without isa(4) (e.g. for EBus-only machines). This ISA-specific part isn't separated into its own source file, yet, as it requires more work than was feasible for 6.0 in order to do it in a clean way. Actually philip@ is working on a rewrite of psm(4) so a more comprehensive clean-up and separation of hardware dependent and independent parts is expected to happen after 6.0. Tested on: i386, sparc64 (AX1105, AXe and AXi boards) Reviewed by: philip
|
#
f263522a |
|
09-Jun-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
MFP4: - Implement sampling modes and logging support in hwpmc(4). - Separate MI and MD parts of hwpmc(4) and allow sharing of PMC implementations across different architectures. Add support for P4 (EMT64) style PMCs to the amd64 code. - New pmcstat(8) options: -E (exit time counts) -W (counts every context switch), -R (print log file). - pmc(3) API changes, improve our ability to keep ABI compatibility in the future. Add more 'alias' names for commonly used events. - bug fixes & documentation.
|
#
9fa98e70 |
|
28-Apr-2005 |
Scott Long <scottl@FreeBSD.org> |
Update the file.* entries for the new home of hwpmc
|
#
96b50ea3 |
|
24-Apr-2005 |
Bill Paul <wpaul@FreeBSD.org> |
Throw the switch on the new driver generation/loading mechanism. From here on in, if_ndis.ko will be pre-built as a module, and can be built into a static kernel (though it's not part of GENERIC). Drivers are created using the new ndisgen(8) script, which uses ndiscvt(8) under the covers, along with a few other tools. The result is a driver module that can be kldloaded into the kernel. A driver with foo.inf and foo.sys files will be converted into foo_sys.ko (and foo_sys.o, for those who want/need to make static kernels). This module contains all of the necessary info from the .INF file and the driver binary image, converted into an ELF module. You can kldload this module (or add it to /boot/loader.conf) to have it loaded automatically. Any required firmware files can be bundled into the module as well (or converted/loaded separately). Also, add a workaround for a problem in NdisMSleep(). During system bootstrap (cold == 1), msleep() always returns 0 without actually sleeping. The Intel 2200BG driver uses NdisMSleep() to wait for the NIC's firmware to come to life, and fails to load if NdisMSleep() doesn't actually delay. As a workaround, if msleep() (and hence ndis_thsuspend()) returns 0, use a hard DELAY() to sleep instead). This is not really the right thing to do, but we can't really do much else. At the very least, this makes the Intel driver happy. There are probably other drivers that fail in this way during bootstrap. Unfortunately, the only workaround for those is to avoid pre-loading them and kldload them once the system is running instead.
|
#
108311ba |
|
22-Apr-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Clean generated os+%DIKED-nve.h.
|
#
ebccf1e3 |
|
18-Apr-2005 |
Joseph Koshy <jkoshy@FreeBSD.org> |
Bring a working snapshot of hwpmc(4), its associated libraries, userland utilities and documentation into -CURRENT. Bump FreeBSD_version. Reviewed by: alc, jhb (kernel changes)
|
#
c6a37e84 |
|
04-Apr-2005 |
John Baldwin <jhb@FreeBSD.org> |
Divorce critical sections from spinlocks. Critical sections as denoted by critical_enter() and critical_exit() are now solely a mechanism for deferring kernel preemptions. They no longer have any affect on interrupts. This means that standalone critical sections are now very cheap as they are simply unlocked integer increments and decrements for the common case. Spin mutexes now use a separate KPI implemented in MD code: spinlock_enter() and spinlock_exit(). This KPI is responsible for providing whatever MD guarantees are needed to ensure that a thread holding a spin lock won't be preempted by any other code that will try to lock the same lock. For now all archs continue to block interrupts in a "spinlock section" as they did formerly in all critical sections. Note that I've also taken this opportunity to push a few things into MD code rather than MI. For example, critical_fork_exit() no longer exists. Instead, MD code ensures that new threads have the correct state when they are created. Also, we no longer try to fixup the idlethreads for APs in MI code. Instead, each arch sets the initial curthread and adjusts the state of the idle thread it borrows in order to perform the initial context switch. This change is largely a big NOP, but the cleaner separation it provides will allow for more efficient alternative locking schemes in other parts of the kernel (bare critical sections rather than per-CPU spin mutexes for per-CPU data for example). Reviewed by: grehan, cognet, arch@, others Tested on: i386, alpha, sparc64, powerpc, arm, possibly more
|
#
5ec8c336 |
|
01-Apr-2005 |
Scott Long <scottl@FreeBSD.org> |
FIx a botch with the addition of the arcmsr driver.
|
#
d0885ac3 |
|
31-Mar-2005 |
Scott Long <scottl@FreeBSD.org> |
Glue the arcmsr driver into the tree.
|
#
bc4c8712 |
|
27-Mar-2005 |
Nate Lawson <njl@FreeBSD.org> |
Add powernow to kernel build target.
|
#
1b1a07ad |
|
11-Mar-2005 |
David E. O'Brien <obrien@FreeBSD.org> |
FreeBSD consumer bits of the nForce MCP NIC binary blob. Demanded by: DES Encouraged by: scottl Obtained from: q@onthenet.com.au (partially) KNF'ed by: obrien
|
#
63ba67b6 |
|
24-Feb-2005 |
Bill Paul <wpaul@FreeBSD.org> |
- Correct one aspect of the driver_object/device_object/IRP framework: when we create a PDO, the driver_object associated with it is that of the parent driver, not the driver we're trying to attach. For example, if we attach a PCI device, the PDO we pass to the NdisAddDevice() function should contain a pointer to fake_pci_driver, not to the NDIS driver itself. For PCI or PCMCIA devices this doesn't matter because the child never needs to talk to the parent bus driver, but for USB, the child needs to be able to send IRPs to the parent USB bus driver, and for that to work the parent USB bus driver has to be hung off the PDO. This involves modifying windrv_lookup() so that we can search for bus drivers by name, if necessary. Our fake bus drivers attach themselves as "PCI Bus," "PCCARD Bus" and "USB Bus," so we can search for them using those names. The individual attachment stubs now create and attach PDOs to the parent bus drivers instead of hanging them off the NDIS driver's object, and in if_ndis.c, we now search for the correct driver object depending on the bus type, and use that to find the correct PDO. With this fix, I can get my sample USB ethernet driver to deliver an IRP to my fake parent USB bus driver's dispatch routines. - Add stub modules for USB support: subr_usbd.c, usbd_var.h and if_ndis_usb.c. The subr_usbd.c module is hooked up the build but currently doesn't do very much. It provides the stub USB parent driver object and a dispatch routine for IRM_MJ_INTERNAL_DEVICE_CONTROL. The only exported function at the moment is USBD_GetUSBDIVersion(). The if_ndis_usb.c stub compiles, but is not hooked up to the build yet. I'm putting these here so I can keep them under source code control as I flesh them out.
|
#
d8f2dda7 |
|
15-Feb-2005 |
Bill Paul <wpaul@FreeBSD.org> |
Add support for Windows/x86-64 binaries to Project Evil. Ville-Pertti Keinonen (will at exomi dot comohmygodnospampleasekthx) deserves a big thanks for submitting initial patches to make it work. I have mangled his contributions appropriately. The main gotcha with Windows/x86-64 is that Microsoft uses a different calling convention than everyone else. The standard ABI requires using 6 registers for argument passing, with other arguments on the stack. Microsoft uses only 4 registers, and requires the caller to leave room on the stack for the register arguments incase the callee needs to spill them. Unlike x86, where Microsoft uses a mix of _cdecl, _stdcall and _fastcall, all routines on Windows/x86-64 uses the same convention. This unfortunately means that all the functions we export to the driver require an intermediate translation wrapper. Similarly, we have to wrap all calls back into the driver binary itself. The original patches provided macros to wrap every single routine at compile time, providing a secondary jump table with a customized wrapper for each exported routine. I decided to use a different approach: the call wrapper for each function is created from a template at runtime, and the routine to jump to is patched into the wrapper as it is created. The subr_pe module has been modified to patch in the wrapped function instead of the original. (On x86, the wrapping routine is a no-op.) There are some minor API differences that had to be accounted for: - KeAcquireSpinLock() is a real function on amd64, not a macro wrapper around KfAcquireSpinLock() - NdisFreeBuffer() is actually IoFreeMdl(). I had to change the whole NDIS_BUFFER API a bit to accomodate this. Bugs fixed along the way: - IoAllocateMdl() always returned NULL - kern_windrv.c:windrv_unload() wasn't releasing private driver object extensions correctly (found thanks to memguard) This has only been tested with the driver for the Broadcom 802.11g chipset, which was the only Windows/x86-64 driver I could find.
|
#
f91067a3 |
|
20-Dec-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Protect the NM expansion.
|
#
939000cf |
|
20-Dec-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Fix a mis-sort.
|
#
1556fbfc |
|
14-Dec-2004 |
Peter Wemm <peter@FreeBSD.org> |
Add config hooks for amd64 atheros hal modules
|
#
685e7002 |
|
22-Nov-2004 |
Warner Losh <imp@FreeBSD.org> |
It appears that 'kbd' device has never been used and isn't needed. Build tests show that this isn't used for GENERIC or LINT, and nobody seemed to know why they existed.
|
#
932fc0bc |
|
28-Sep-2004 |
Mark Murray <markm@FreeBSD.org> |
Be consistant; make the memrange bit be part of the mem module like i386.
|
#
21691935 |
|
23-Sep-2004 |
Peter Wemm <peter@FreeBSD.org> |
Converge towards i386. I originally resisted creating <machine/pc/bios.h> because it was mostly irrelevant - except for the silly BIOS_PADDRTOVADDR etc macros. Along the way of working around this, I missed a few things. * Make syscons properly inherit the bios capslock/shiftlock/etc state like i386 does. Note that we cannot inherit the bios key repeat rate because that requires a bios call (which is impossible for us). * Give syscons the ability to beep on amd64. Oops. While here, make bios.c compile and add it to files.amd64.
|
#
5fe155d0 |
|
30-Aug-2004 |
Peter Wemm <peter@FreeBSD.org> |
Add the mp_watchdog hooks, although it locks up my SMP test box. It might be useable to somebody.
|
#
7a071c6a |
|
15-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Complete 'IA32' -> 'COMPAT_IA32' change for the Linuxulator32.
|
#
3c749e3f |
|
15-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
AMD64 on-CPU GART support. This also applies to AMD64 HW running 'i386' OS. Submitted by: Jung-uk Kim <jkim@niksun.com> Integration by: obrien
|
#
ea0fabbc |
|
16-Aug-2004 |
Tim J. Robbins <tjr@FreeBSD.org> |
Add preliminary support for running 32-bit Linux binaries on amd64, enabled with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32 binary emulation work. Some of this is still a little rough around the edges, and will need to be revisited before 32-bit and 64-bit Linux emulation support can coexist in the same kernel.
|
#
29fe871d |
|
04-Aug-2004 |
Mark Murray <markm@FreeBSD.org> |
Oops. Didn't commit this as part of the mem module fix.
|
#
8ab2f5ec |
|
01-Aug-2004 |
Mark Murray <markm@FreeBSD.org> |
Break out the MI part of the /dev/[k]mem and /dev/io drivers into their own directory and module, leaving the MD parts in the MD area (the MD parts _are_ part of the modules). /dev/mem and /dev/io are now loadable modules, thus taking us one step further towards a kernel created entirely out of modules. Of course, there is nothing preventing the kernel from having these statically compiled.
|
#
32cfa665 |
|
15-Jul-2004 |
Nate Lawson <njl@FreeBSD.org> |
Hook up fdc_acpi for the kernel build.
|
#
5971a234 |
|
10-Jul-2004 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Hook the GDB backend into the build.
|
#
01a8e5a9 |
|
08-Jul-2004 |
Warner Losh <imp@FreeBSD.org> |
Fix mismerge of fdc. Also, OLDCARD never was supported on amd64, so remove fdc attachment for it.
|
#
8ade021a |
|
07-Jul-2004 |
Warner Losh <imp@FreeBSD.org> |
Break out the isa and pccard front ends to the fdc controller device. This should allow us to more easily break out the acpi and 'legacy pc' front ends as well (so only the bus front end would touch rtc, for example). This isn't a great separation, since isa dma routines are still called from the MI code, but it is a start.
|
#
f1ca765c |
|
30-Jun-2004 |
Nate Lawson <njl@FreeBSD.org> |
Move acpi_if.m to files.{amd64,i386,ia64}. This should fix the alpha build. Pointed out by: gallatin
|
#
003d5d66 |
|
23-May-2004 |
Bruce Evans <bde@FreeBSD.org> |
Fixed profiling of trap, syscall and interrupt handlers and some ordinary functions, essentially by backing out half of rev.1.115 of amd64/exception.S. The handlers must be between certain labels for the purposes of profiling, and this was broken by scattering them in separately compiled .S files, especially for ordinary functions that ended up between the labels. Merge the files by #including them as before, except with different pathnames and better comments and organization. Changes to the scattered files are minimal -- just move the labels to the file that does the #includes. This also partly fixes profiling of IPIs -- all IPI handlers are now correctly classified as interrupt handlers, but many are still missing mcount calls.
|
#
a51bebab |
|
24-May-2004 |
Bruce Evans <bde@FreeBSD.org> |
Fixed insertion sort error in previous commit (prof_machdep.c). Fixed apparently-intentional disorder of the crypto files. Lists of files should be sorted first on the pathname, not on the option name or subsystem.
|
#
478fee28 |
|
23-May-2004 |
Bruce Evans <bde@FreeBSD.org> |
Build prof_machdep.c if profiling. Kernel profiling for amd64's (normal and high resolution) should now compile and work as (un)well as on i386's. It works better than user profiling because: - it uses _cyg_profile_func_*() instead of .mcount(), so it doesn't suffer from gcc misspelling .mcount as mcount. - it doesn't neglect saving %rax in .mcount(). The SMP case hasn't been tested. The high resolution subcase of this uses the i8254, and as on i386's, the locking for this is deficient and the i8254 is too inefficient. The acpi timer is also too inefficient.
|
#
6cd91141 |
|
16-May-2004 |
Warner Losh <imp@FreeBSD.org> |
Move fdc from isa/fd.c to dev/fdc/fdc.c. The old files were repocopied. Soon there will be additional bus attachments and specialization for isa, acpi and pccard (and maybe pc98's cbus). This was approved by nate, joerg and myself. bde dissented on the new location, but appeared to be OK after some discussion.
|
#
463e5aa6 |
|
16-May-2004 |
Peter Wemm <peter@FreeBSD.org> |
MFi386: numerous interrupt and acpi updates
|
#
4d6bcc83 |
|
16-May-2004 |
Peter Wemm <peter@FreeBSD.org> |
Enable first part of kld's on amd64. This is known to not work right yet, but building kld's is OK now and they can be loaded by kldload(2). (but the machine will likely crash soon afterwards, a "minor" problem :-) Brought to you by: my injured knee (from moving)
|
#
0b1d4202 |
|
23-Apr-2004 |
Tim J. Robbins <tjr@FreeBSD.org> |
Add files required for the NETSMBCRYPTO option.
|
#
33d13796 |
|
20-Mar-2004 |
Alan Cox <alc@FreeBSD.org> |
Introduce uiomove_fromphys(). This is a variant of uiomove() that takes a collection of physical pages as the source. On amd64 it is implemented using the direct virtual-to-physical map.
|
#
54262acd |
|
03-Mar-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Add rules for font.h atkbdmap.h ukbdmap.h so more of LINT can be built.
|
#
db41012c |
|
04-Feb-2004 |
Peter Wemm <peter@FreeBSD.org> |
Add crypto implemenation files (C versions (like alpha, unlike i386))
|
#
f11e46c5 |
|
10-Dec-2003 |
Peter Wemm <peter@FreeBSD.org> |
Move the ia32_sigtramp.S file back under amd64/. This interfaces closely with the sendsig code in the MD area. It is not safe to assume that all the register conventions will be the same. Also, the way of producing 32 bit code (.code32 directives) in this file is amd64 specific.
|
#
0d2a2989 |
|
17-Nov-2003 |
Peter Wemm <peter@FreeBSD.org> |
Initial landing of SMP support for FreeBSD/amd64. - This is heavily derived from John Baldwin's apic/pci cleanup on i386. - I have completely rewritten or drastically cleaned up some other parts. (in particular, bootstrap) - This is still a WIP. It seems that there are some highly bogus bioses on nVidia nForce3-150 boards. I can't stress how broken these boards are. I have a workaround in mind, but right now the Asus SK8N is broken. The Gigabyte K8NPro (nVidia based) is also mind-numbingly hosed. - Most of my testing has been with SCHED_ULE. SCHED_4BSD works. - the apic and acpi components are 'standard'. - If you have an nVidia nForce3-150 board, you are stuck with 'device atpic' in addition, because they somehow managed to forget to connect the 8254 timer to the apic, even though its in the same silicon! ARGH! This directly violates the ACPI spec.
|
#
0432a0f9 |
|
07-Nov-2003 |
Peter Wemm <peter@FreeBSD.org> |
Rename npx.c to fpu.c (it isn't an extension, its part of the core architecture now).
|
#
7fb57893 |
|
13-Oct-2003 |
Alan Cox <alc@FreeBSD.org> |
MFia64 Move uma_small_alloc() and uma_small_free() to uma_machdep.c.
|
#
2bec1c89 |
|
06-Sep-2003 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Hook-up the uart(4) driver to the build. For a detailed description of what uart(4) is and/or is not see the initial commit log of one of the files in sys/dev/uart (or see share/man/man4/uart.4). Note that currently pc98 shares the MD file with i386. This needs to change when pc98 support is fleshed-out to properly support the various UARTs. A good example is sparc64 in this respect. We build uart(4) as a module on all platforms. This may break the ppc port. That depends on whether they do actually build modules. To use uart(4) on alpha, one must use the NO_SIO option.
|
#
4872a3d7 |
|
22-Aug-2003 |
Peter Wemm <peter@FreeBSD.org> |
Turn on the MTRR driver.
|
#
401004db |
|
22-Aug-2003 |
Peter Wemm <peter@FreeBSD.org> |
Complete the switch to the common 32 bit support code.
|
#
11dc7df1 |
|
03-Aug-2003 |
Warner Losh <imp@FreeBSD.org> |
fix disordering of filenames. Place the dev/ppc files in alphabetical order.
|
#
a3732274 |
|
31-Jul-2003 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Add printer support to puc(4) driver. - Move isa/ppc* to sys/dev/ppc (repo-copy) - Add an attachment method to ppc for puc - In puc we need to walk the chain of parents. Still to do, is to make ppc(4) & puc(4) work on other platforms. Testers wanted. PR: 38372 (in spirit done differently) Verified by: Make universe (if I messed up a platform please fix)
|
#
1f5b79bc |
|
31-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Make this compile with WITNESS enabled. It wants the syscall names.
|
#
ff7bf2f7 |
|
31-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Port acpica to amd64. Approved by: re (amd64/* blanket)
|
#
ec2343a8 |
|
29-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Add ddb machdep bits. Approved by: re (amd64 bits)
|
#
04ddc5de |
|
15-May-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Run $S/kern/genassym.sh with the correct NM. Approved by: re(blanket)
|
#
d85631c4 |
|
13-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Add BASIC i386 binary support for the amd64 kernel. This is largely stolen from the ia64/ia32 code (indeed there was a repocopy), but I've redone the MD parts and added and fixed a few essential syscalls. It is sufficient to run i386 binaries like /bin/ls, /usr/bin/id (dynamic) and p4. The ia64 code has not implemented signal delivery, so I had to do that. Before you say it, yes, this does need to go in a common place. But we're in a freeze at the moment and I didn't want to risk breaking ia64. I will sort this out after the freeze so that the common code is in a common place. On the AMD64 side, this required adding segment selector context switch support and some other support infrastructure. The %fs/%gs etc code is hairy because loading %gs will clobber the kernel's current MSR_GSBASE setting. The segment selectors are not used by the kernel, so they're only changed at context switch time or when changing modes. This still needs to be optimized. Approved by: re (amd64/* blanket)
|
#
7dca36c9 |
|
02-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Spell cpu_switch correctly.
|
#
27828625 |
|
02-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
Rename amd64/*.s to amd64/*.S
|
#
b05deb9b |
|
30-Apr-2003 |
Peter Wemm <peter@FreeBSD.org> |
Sync up with the files in the hammer branch in the p4 tree to get basic AMD64 support. There is still more to add.
|
#
5d1b6a85 |
|
28-Feb-2003 |
Ruslan Ermilov <ru@FreeBSD.org> |
Standardize handling of locore.[sS] etc. files. Submitted by: jake, bde, ru
|
#
30b745b6 |
|
29-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove entries for files we don't have. Approved by: peter
|
#
e263f030 |
|
28-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
NO_GEOM cleanup: remove subr_disklabel.c from powerpc and x86_64.
|
#
6fb6c306 |
|
17-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove subr_diskslice.c and subr_diskmbr.c which I can see no traces off a need for in the x86_64 files. Not compile tested.
|
#
2a2c7962 |
|
17-Jan-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move subr_disklabel.c and subr_diskslice.c from being MI to MD files, so that they can be left out where they are unneeded.
|
#
5452db48 |
|
19-Aug-2002 |
Peter Wemm <peter@FreeBSD.org> |
de-count atkbdc and sc. Folks, remove the '1' from 'device sc 1' and 'device atkbdc 1'.
|
#
ba268f03 |
|
23-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
Move sio_isa.c back to MD files files due to PC98 brain damage.
|
#
bdff575a |
|
15-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
Move all the sio(4) attachments (except for pc98's cbus attachment) to the MI files file. We can't move sio.c because pc98 uses a custom version.
|
#
47a3594e |
|
15-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
The puc(4) driver/bridge is MI, so don't bury it in MD options and files config files. It also depends on PCI.
|
#
d2be885e |
|
30-Jun-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
This is the start of the FreeBSD/x86_64 kernel.
|