| 1.4 |
21-Aug-2025 |
imil |
PR 59568: Disable viogpu in MICROVM kernel configuration as it is not supported for now.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
|
| 1.3 |
08-May-2025 |
imil |
branches: 1.3.2; 1.3.4; Rename BOOTCYCLETIME kernel option and subsequent files to BOOT_DURATION
|
| 1.2 |
06-May-2025 |
imil |
Add BOOTCYCLETIME option to print kernel boot time
Introduce a new kernel option, BOOTCYCLETIME, which will print the time taken for the kernel to boot on (for now) amd64 and i386 architectures.
|
| 1.1 |
28-Mar-2025 |
imil |
x86: consolidate MICROVM kernel configurations
Move common configuration options from amd64/conf/MICROVM and i386/conf/MICROVM into a shared x86/conf/MICROVM.common file.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
|
| 1.126 |
14-Jun-2023 |
rin |
Make PCI_ADDR_FIXUP depended on PCI_BUS_FIXUP. It is no-op if PCI_BUS_FIXUP is missing.
|
|
Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
|
| 1.125 |
28-Oct-2022 |
skrll |
MI PMAP EFI_RUNTIME support
|
|
Revision tags: bouyer-sunxi-drm-base
|
| 1.124 |
24-Sep-2022 |
riastradh |
x86: Support EFI runtime services.
This creates a special pmap, efi_runtime_pmap, which avoids setting PTE_U but allows mappings to lie in what would normally be user VM -- this way we don't fall afoul of SMAP/SMEP when executing EFI runtime services from CPL 0. SVS does not apply to the EFI runtime pmap.
The mechanism is intended to work with either physical addressing or virtual addressing; currently the bootloader does physical addressing but in principle it could be modified to do virtual addressing instead, if it allocated virtual pages, assigned them in the memory map, and issued RT->SetVirtualAddressMap.
Not sure pmap_activate_sync and pmap_deactivate_sync are correct, need more review from an x86 wizard.
If this causes fallout, it can be disabled temporarily without reverting anything by just making efi_runtime_init return immediately without doing anything, or by removing options EFI_RUNTIME.
amd64-only for now pending type fixes and testing on i386.
|
| 1.123 |
30-Aug-2022 |
riastradh |
x86: Rename x86/efi.c -> x86/efi_machdep.c.
Avoid collision with dev/efi.c.
|
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
|
| 1.122 |
21-Jul-2021 |
jmcneill |
x86's platform.c no longer has any x86 specific code in it, so move it to dev/smbios_platform.c to let other ports use it
|
| 1.121 |
21-Jul-2021 |
jmcneill |
Separate MI smbios interface from MD specific code.
|
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
|
| 1.120 |
27-Oct-2020 |
ryo |
branches: 1.120.6; move vmt(4) from MD to MI, and add support vmt on aarch64. tested on ESXi-Arm Fling
- move from sys/arch/x86/x86/{vmt.c,vmtreg.h,vmtvar.h} to sys/dev/vmt/{vmt_subr.c,vmtreg.h,vmtvar.h}, and split the attach part of the cpufeaturebus and fdt - add aarch64 vmware backdoor op - add include guard to vmt{reg,var}.h - Yet there is still some little-endian dependency. it needs to be fixed in order to work properly on aarch64eb
|
| 1.119 |
01-Aug-2020 |
jdolecek |
defflag NO_PCI_MSI_MSIX
|
| 1.118 |
25-Jul-2020 |
riastradh |
Implement ChaCha with SSE2 on x86 machines.
Slightly disappointed that it only doubles, rather than quadruples, throughput on my Ivy Bridge laptop. Worth investigating.
|
| 1.117 |
14-Jul-2020 |
yamaguchi |
Introduce per-cpu IDTs
This is realized by following modifications: - Add IDT pages and its allocation maps for each cpu in "struct cpu_info" - Load per-cpu IDTs at cpu_init_idt(struct cpu_info*) - Copy the IDT entries for cpu0 to other CPUs at attach - These are, for example, exceptions, db, system calls, etc.
And, added a kernel option named PCPU_IDT to enable the feature.
|
| 1.116 |
29-Jun-2020 |
riastradh |
New permutation-based AES implementation using SSSE3.
This covers a lot of CPUs -- particularly lower-end CPUs over the past decade which lack AES-NI.
Derived from Mike Hamburg's public domain vpaes software; see <https://crypto.stanford.edu/vpaes/> for details.
|
| 1.115 |
29-Jun-2020 |
riastradh |
New SSE2-based bitsliced AES implementation.
This should work on essentially all x86 CPUs of the last two decades, and may improve throughput over the portable C aes_ct implementation from BearSSL by
(a) reducing the number of vector operations in sequence, and (b) batching four rather than two blocks in parallel.
Derived from BearSSL'S aes_ct64 implementation adjusted so that where aes_ct64 uses 64-bit q[0],...,q[7], aes_sse2 uses (q[0], q[4]), ..., (q[3], q[7]), each tuple representing a pair of 64-bit quantities stacked in a single 128-bit register. This translation was done very naively, and mostly reduces the cost of ShiftRows and data movement without doing anything to address the S-box or (Inv)MixColumns, which spread all 64-bit quantities across separate registers and ignore the upper halves.
Unfortunately, SSE2 -- which is all that is guaranteed on all amd64 CPUs -- doesn't have PSHUFB, which would help out a lot more. For example, vpaes relies on that. Perhaps there are enough CPUs out there with PSHUFB but not AES-NI to make it worthwhile to import or adapt vpaes too.
Note: This includes local definitions of various Intel compiler intrinsics for gcc and clang in terms of their __builtin_* &c., because the necessary header files are not available during the kernel build. This is a kludge -- we should fix it properly; the present approach is expedient but not ideal.
|
| 1.114 |
29-Jun-2020 |
riastradh |
Add AES implementation with VIA ACE.
|
| 1.113 |
29-Jun-2020 |
riastradh |
padlock(4): Remove legacy rijndael API use.
This doesn't actually need to compute AES -- it just needs the standard AES key schedule, so use the BearSSL constant-time key schedule implementation.
XXX Compile-tested only. XXX The byte-order business here seems highly questionable.
|
| 1.112 |
29-Jun-2020 |
riastradh |
Add x86 AES-NI support.
Limited to amd64 for now. In principle, AES-NI should work in 32-bit mode, and there may even be some 32-bit-only CPUs that support AES-NI, but that requires work to adapt the assembly.
|
| 1.111 |
06-May-2020 |
bouyer |
x86/x86/ipi.c should not be built for XENPV, even if dom0ops is defined.
|
| 1.110 |
25-Apr-2020 |
bouyer |
Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM guests in GENERIC. Xen support can be disabled at runtime with boot -c disable hypervisor
|
|
Revision tags: bouyer-xenpvh-base2
|
| 1.109 |
22-Apr-2020 |
rin |
Make crypto/rijindael optional again as cprng_strong does no longer depend on it. Dependency is explicitly declared in files.foo if a component requires it.
|
|
Revision tags: phil-wifi-20200421
|
| 1.108 |
21-Apr-2020 |
msaitoh |
Get TSC frequency from CPUID 0x15 and/or x16 for newer Intel processors.
- If the max CPUID leaf is >= 0x15, take TSC value from CPUID. Some processors can take TSC/core crystal clock ratio but core crystal clock frequency can't be taken. Intel SDM give us the values for some processors. - It also required to change lapic_per_second to make LAPIC timer correctly. - Add new file x86/x86/identcpu_subr.c to share common subroutines between kernel and userland. Some code in x86/x86/identcpu.c and cpuctl/arch/i386.c will be moved to this file in future. - Add comment to clarify.
|
|
Revision tags: bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
| 1.107 |
15-Feb-2019 |
nonaka |
branches: 1.107.4; 1.107.10; Added Microsoft Hyper-V support. It ported from OpenBSD and FreeBSD.
graphical console is not work on Gen.2 VM yet. To use the serial console, enter "consdev com,0x3f8,115200" on efiboot.
|
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
|
| 1.106 |
25-Dec-2018 |
mlelstv |
Make ipmi driver available to other platforms. Add ACPI attachment.
|
| 1.105 |
20-Dec-2018 |
cherry |
Enable 'options NO_PCI_MSI_MSIX' to DTRT in x86 builds.
Document 'options NO_PCI_MSI_MSIX' in options(4).
|
| 1.104 |
07-Dec-2018 |
maxv |
Add an option to have a static kernel memory layout. This option is disabled by default - that is to say, KASLR remains enabled by default.
|
|
Revision tags: pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728
|
| 1.103 |
16-Jul-2018 |
maxv |
Move arch/x86/x86/tprof_pmi.c arch/x86/x86/tprof_amdpmi.c into dev/tprof/tprof_x86_intel.c dev/tprof/tprof_x86_amd.c
|
| 1.102 |
13-Jul-2018 |
maxv |
Remove the X86PMC code I had written, replaced by tprof. Many defines become unused in specialreg.h, so remove them. We don't want to add defines all the time, there are countless PMCs on many generations, and it's better to just inline the event/unit values.
|
|
Revision tags: phil-wifi-base pgoyette-compat-0625
|
| 1.101 |
22-May-2018 |
maxv |
branches: 1.101.2; Mmh, don't compile spectre.c on Xen.
|
|
Revision tags: pgoyette-compat-0521 pgoyette-compat-0502
|
| 1.100 |
01-May-2018 |
pgoyette |
Make MPVERBOSE a defparam rather than defflag. It has multiple non-zero usages within mpacpi.c
|
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
| 1.99 |
28-Mar-2018 |
maxv |
Move the SpectreV2 mitigation code into a dedicated spectre.c file. The content of the file is taken from the end of cpu.c, and is copied as-is.
|
|
Revision tags: pgoyette-compat-0322
|
| 1.98 |
18-Mar-2018 |
christos |
Separate the compat code in its own file to facilitate module building.
|
|
Revision tags: pgoyette-compat-0315 pgoyette-compat-base
|
| 1.97 |
01-Mar-2018 |
mrg |
branches: 1.97.2; move the imc code into x86/pci/files.pci so that pci is defined in time.
|
| 1.96 |
01-Mar-2018 |
pgoyette |
Move the imc(4) and imcsmb(4) sources into architecture-specific directory (for previous CVS history see the sys/dev/pci/imcsmb/ Attic)
|
| 1.95 |
01-Mar-2018 |
pgoyette |
Replace spaces with tabs (xterm copy-&-pasto)
|
| 1.94 |
01-Mar-2018 |
pgoyette |
Move the imc and imcsmb stuff out of general files.pci and into the architecture-specific files.x86
Should unbreak the sgimips build.
|
| 1.93 |
11-Feb-2018 |
maxv |
Move SVS into x86/svs.c
|
| 1.92 |
22-Jan-2018 |
jdolecek |
rename sys/arch/x86/x86/pmap_tlb.c to sys/arch/x86/x86/x86_tlb.c, so that x86 can eventually use uvm/pmap/pmap_tlb.c; step to future PCID support
|
| 1.91 |
08-Jan-2018 |
christos |
Make things compile again.
|
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
|
| 1.90 |
15-Aug-2017 |
maxv |
Merge into x86/.
|
| 1.89 |
15-Aug-2017 |
maxv |
Merge into x86/.
|
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
| 1.88 |
10-Mar-2017 |
maxv |
branches: 1.88.6; Move pmc.c into x86/, it can be shared with amd64.
|
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
| 1.87 |
27-Feb-2016 |
tls |
branches: 1.87.2; 1.87.4; Add cpu_rng, a framework for simple on-CPU random number generators.
|
| 1.86 |
28-Jan-2016 |
christos |
Add support for grub to find the ACPI root table pointer via a bootinfo entry from grub. From: https://mail-index.netbsd.org/tech-kern/2014/05/22/msg017119.html
|
|
Revision tags: nick-nhusb-base-20151226
|
| 1.85 |
11-Nov-2015 |
skrll |
Split out the pmap_pv_track stuff for use by others.
Discussed with riastradh@
|
|
Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
| 1.84 |
27-Apr-2015 |
knakahara |
add x86 MD MSI/MSI-X support code.
|
|
Revision tags: nick-nhusb-base-20150406 nick-nhusb-base
|
| 1.83 |
10-Oct-2014 |
uebayasi |
branches: 1.83.2; Normalize: acpicpu depends on acpi.
|
| 1.82 |
10-Oct-2014 |
uebayasi |
Define "machdep" attribute and mark files (in amd64 and x86).
|
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
| 1.81 |
18-Mar-2014 |
riastradh |
Merge riastradh-drm2 to HEAD.
|
|
Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1
|
| 1.80 |
17-Jul-2013 |
soren |
A few "isa" files are so tightly integrated into the x86 platform code as to not really be part of the optional isa bus autoconf machinery.
Allows configuring a kernel like so:
include "arch/amd64/conf/GENERIC" no isa
|
|
Revision tags: riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
| 1.79 |
29-Aug-2012 |
drochner |
branches: 1.79.2; 1.79.4; 1.79.10; Extend the CPU microcode update framework to support Intel x86 CPUs. Contrary to the AMD implementation, it doesn't use xcalls to distribute the update to all CPUs but relies on cpuctl(8) to bind itself to the right CPU -- to keep it simple and avoid possible problems with hyperthreading. Also, it doesn't parse the vendor supplied file to pick the right part for the present CPU model but relies on userland to prepare files with specific filenames. I'll commit a pkg for this in a minute (pkgsrc/sysutils/intel-microcode). The ioctl interface changed; compatibility is provided (should be limited to COMPAT_NETBSD6 as soon as this is available).
|
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5
|
| 1.78 |
07-May-2012 |
jym |
Merge i386 and amd64 version of db_memrw.c.
Use this opportunity to skip calculating the VA of the page. Let the CPU deal with the invalidation itself through invlpg + destination address to avoid converting between canonical/non canonical forms.
|
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
| 1.77 |
13-Jan-2012 |
martin |
Make option CPU_UCODE global
|
| 1.76 |
13-Jan-2012 |
cegger |
Support CPU microcode loading via cpuctl(8). Implemented and enabled via CPU_UCODE kernel config option for x86 and Xen Dom0. Tested on different AMD machines with different CPU families.
ok wiz@ for the manpages ok releng@ ok core@ via releng@
|
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
| 1.75 |
19-Oct-2011 |
dyoung |
branches: 1.75.2; 1.75.6; Don't link pci_ranges.c with x86 kernels for now, it's using a pcibus_attach_args member that I haven't added, yet.
|
| 1.74 |
17-Oct-2011 |
jmcneill |
vmt needs sysmon_taskq
|
| 1.73 |
17-Oct-2011 |
jmcneill |
add a port of the VMware Tools driver vmt(4) from OpenBSD
|
| 1.72 |
29-Aug-2011 |
dyoung |
Add pci_ranges.c to the set of files compiled when 'pci' is configured.
|
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
| 1.71 |
12-Jun-2011 |
jruoho |
Follow IA-64 with the x86-specific ACPI MD functions and move these where they belong to. Remove an unused function. Minor KNF. No functional change.
|
| 1.70 |
12-Jun-2011 |
jruoho |
Move the evaluation of the _PDC control method out from the acpicpu(4) driver to the main acpi(4) stack. Follow Linux and evaluate it early. Should fix PR port-amd64/42895, possibly also PR kern/42583, and many other comparable bugs.
A common sense explanation is that Intel supplies additional CPU tables to OEMs. BIOS writers do not bother to modify their DSDTs, but instead load these extra tables dynamically as secondary SSDT tables. The actual Load() happens when the _PDC method is invoked, and thus namespace errors occur when the CPU-specific ACPI methods are not yet present but referenced in the AML by various drivers, including, but not limited to, acpitz(4).
|
| 1.69 |
12-Jun-2011 |
rmind |
Welcome to 5.99.53! Merge rmind-uvmplock branch:
- Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock.
- Simplify locking in some pmap(9) modules by removing P->V locking.
- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).
- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner. Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.
- Unify /dev/mem et al in MI code and provide required locking (removes kernel-lock on some ports). Also, avoid cache-aliasing issues.
Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches formed the core changes of this branch.
|
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
| 1.68 |
31-May-2011 |
dyoung |
branches: 1.68.2; Don't use the C preprocessor to configure USERCONF. Instead, either do or do not link in subr_userconf.c and x86_userconf.c.
Provide no-op stubs for userconf_bootinfo(), userconf_init(), and userconf_prompt().
Delete all occurrences of #include "opt_userconf.h" as well as USERCONF and __HAVE_USERCONF_BOOTINFO #ifdef'age.
|
| 1.67 |
10-Apr-2011 |
christos |
Merge db_trace for x86. From: Vladimir Kirillov proger at wilab dot org dot ua
|
| 1.66 |
04-Apr-2011 |
dyoung |
As pointed out by Manuel Bouyer and Taylor R Campbell, I forgot to commit the change to files.x86 that adds x86_stub.c, so do that.
|
| 1.65 |
16-Mar-2011 |
jakllsch |
sys/arch/x86/x86/iclockmod.c has been removed.
|
|
Revision tags: bouyer-quota2-nbase
|
| 1.64 |
04-Mar-2011 |
jruoho |
Move INTEL_ONDEMAND_CLOCKMOD -- or odcm(4) -- to the cpufeaturebus.
|
| 1.63 |
27-Feb-2011 |
jruoho |
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".
|
| 1.62 |
24-Feb-2011 |
jruoho |
Move VIA_C7TEMP to the cpufeaturebus.
|
| 1.61 |
24-Feb-2011 |
jruoho |
Move PowerNow! to the cpufeaturebus.
|
| 1.60 |
23-Feb-2011 |
jruoho |
Move ENHANCED_SPEEDSTEP, or henceforth est(4), to the cpufeaturebus.
|
| 1.59 |
20-Feb-2011 |
jruoho |
Modularize coretemp(4). Ok jmcneill@.
|
| 1.58 |
19-Feb-2011 |
jmcneill |
modularize VIA PadLock support - retire options VIA_PADLOCK, replace with 'padlock0 at cpu0' - driver supports attach & detach - support building as a module
|
|
Revision tags: uebayasi-xip-base7 bouyer-quota2-base
|
| 1.57 |
05-Feb-2011 |
yamt |
decouple tprof and its backends.
|
|
Revision tags: jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
| 1.56 |
18-Jul-2010 |
jruoho |
branches: 1.56.2; 1.56.4; Merge a driver for ACPI CPUs with basic support for processor power states, also known as C-states. The code is modular and provides an easy way to add the remaining functionality later (namely throttling and P-states).
Remarks:
1. Commented out in the GENERICs; more testing exposure is needed.
2. The C3-state is disabled for the time being because it turns off timers, among them the local APIC timer. This may not be universally true on all x86 processors; define ACPICPU_ENABLE_C3 to test.
3. The algorithm used to choose a power state may need tuning. When evaluating the appropriate state, the implementation uses the previous sleep time as an indicator. Additional hints would include for example the system load.
Also bus master activity is evaluated when choosing a state. The usb(4) stack is notorious for such activity even when unused. Typically it must be disabled in order to reach the C3-state, but it may also prevent the use of C2.
4. While no extensive empirical measurements have been carried out, the power savings are somewhere between 1-2 W with C1 and C2, depending on the processor, firmware, and load. With C3 even up to 4 W can be saved. The less something ticks, the more power is saved.
ok jmcneill@, joerg@, and discussed with various people.
|
| 1.55 |
08-Jul-2010 |
rmind |
Unify i386 and amd64 procfs MD code into x86.
|
|
Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211
|
| 1.54 |
05-Oct-2009 |
rmind |
branches: 1.54.2; 1.54.4; Remove X86_IPI_WRITE_MSR (and msr_ipifuncs.c), replace all uses in drivers with xc_broadcast(). AMD K8 PowerNow driver tested by <jakllsch>, thanks!
Closes PR/37665.
|
| 1.53 |
02-Oct-2009 |
jmcneill |
Add support for VIA C7 temperature sensors (options VIA_C7TEMP)
|
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3
|
| 1.52 |
30-Apr-2009 |
rmind |
Move x86 CPU topology detection code into the separate file (as it was originally). OK by <yamt>.
|
|
Revision tags: nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base
|
| 1.51 |
17-Apr-2009 |
dyoung |
Introduce sys/arch/x86/x86/mp.c for common x86 MP configuration code. mpacpi_scan_pci() and mpbios_scan_pci() are identical code, so replace them with mp_pci_scan().
Introduce mp_pci_childdetached(), which helps us to detach root PCI buses that were enumerated either by MP BIOS or by ACPI.
Let us detach and re-attach PCI buses from mainbus0 on i386. This is necessarily a work-in-progress, because testing detach and re-attach is very difficult: to detach and re-attach the entire PCI tree on most x86 computers that I own is not possible because some essential device attaches under the PCI subtree: the console, com0, NIC, or storage controller always attaches in the PCI tree.
|
| 1.50 |
16-Apr-2009 |
rmind |
- Add macros to handle (some) trapframe registers for common x86 code. - Merge i386 and amd64 syscall.c into x86. No functional changes intended.
Proposed on (port-i386 & port-amd64). Unfortunately, I cannot merge these lists into the single port-x86. :(
|
| 1.49 |
07-Apr-2009 |
dyoung |
Add opt_intrdebug.h for the INTRDEBUG option, and #include it here and there. Fixes GENERIC/i386 compilation with 'options INTRDEBUG'.
|
| 1.48 |
30-Mar-2009 |
rmind |
Merge i386 and amd64 vm_machdep.c into x86. No functional changes intended. Note: some #ifdefs will be removed with macros.
|
| 1.47 |
30-Mar-2009 |
rmind |
Merge/move core_machdep.c into x86, no difference between i386 and amd64.
|
|
Revision tags: nick-hppapmap-base2
|
| 1.46 |
24-Feb-2009 |
yamt |
- rewrite x86 nmi dispatcher so that establish and disesablish are safe on a running system. - adapt existing users of the api. (elan) - adapt tprof_pmi driver to use the api.
|
| 1.45 |
17-Feb-2009 |
jmcneill |
PR# port-i386/37026: userconf(4) doesn't work with vesafb(4)
Add early console support for x86 genfb.
|
|
Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base mjf-devfs2-base
|
| 1.44 |
03-Aug-2008 |
joerg |
branches: 1.44.2; 1.44.4; 1.44.8; 1.44.12; Move some MD declarations from x86/pci/files.pci to x86/conf/files.x86, so that Xen can use the former.
Drop Xen's pcib.c in favor of the x86 code and thereby unbreak ichlpcib.
|
|
Revision tags: wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
| 1.43 |
11-May-2008 |
ad |
branches: 1.43.4; Simplify x86 identcpu code, and share between i386/amd64.
|
| 1.42 |
09-May-2008 |
joerg |
Make cpu_idle a macro calling a function pointer on x86. Select the Xen idle routine for Xen, mwait if supported by the CPU and it is not AMD and halt otherwise. As reported by Christoph Egger, AMD Barcelona keeps the CPU in C0 state with MWAIT, contrary to HLT, which uses C1 and therefore much less power.
|
|
Revision tags: yamt-nfs-mp-base
|
| 1.41 |
25-Apr-2008 |
ad |
branches: 1.41.2; 1.41.4; Include null IPI functions if !MULTIPROCESSOR.
|
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
| 1.40 |
01-Jan-2008 |
yamt |
branches: 1.40.6; 1.40.8; try to detect processor resource sharing topologies. ie. package/core/smt IDs.
|
|
Revision tags: vmlocking2-base3
|
| 1.39 |
26-Dec-2007 |
yamt |
- share idt entry allocation code among x86. - introduce a function to reserve an idt entry and use it instead of manipulating idt_allocmap directly. - rename idt to xen_idt for amd64 xen. add missing #ifdef XEN.
|
| 1.38 |
25-Dec-2007 |
joerg |
Add initial version of calling VGA POST from vga_resume. This is the equivalent to "vbetool post" using x86emu in the kernel.
|
| 1.37 |
18-Dec-2007 |
joerg |
Add new IPI for saving CPU state explicitly, share high-level part of ACPI wakeup code and teach it how to start the APs again. As a side effect the CPU_START interface allows choosing between different bootstrap codes more easily now.
|
|
Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
|
| 1.36 |
09-Dec-2007 |
jmcneill |
branches: 1.36.2; Merge jmcneill-pm branch.
|
|
Revision tags: yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
|
| 1.35 |
03-Dec-2007 |
ad |
branches: 1.35.2; 1.35.4; Interrupt handling changes, in discussion since February:
- Reduce available SPL levels for hardware devices to none, vm, sched, high. - Acquire kernel_lock only for interrupts at IPL_VM. - Implement threaded soft interrupts.
|
|
Revision tags: bouyer-xenamd64-base2 bouyer-xenamd64-base
|
| 1.34 |
07-Nov-2007 |
ad |
__cpu_simple_locks really should be simple, otherwise they can cause problems for e.g. profiling.
|
|
Revision tags: jmcneill-base
|
| 1.33 |
29-Oct-2007 |
xtraeme |
branches: 1.33.2; Add coretemp(4). A new driver for Intel Core's on-die thermal sensor, available on Intel Core or newer CPUs.
Ported from FreeBSD. Tested by rmind on i386 and joerg on amd64.
Enabled with "options INTEL_CORETEMP".
|
| 1.32 |
26-Oct-2007 |
xtraeme |
- Share pchb(4) between i386 and amd64; one copy is enough for both. - Move some of the x86 PCI devices into x86/pci/files.pci. - Add more x86 stuff into x86/conf/files.x86.
ok joerg.
|
|
Revision tags: yamt-x86pmap-base4
|
| 1.31 |
17-Oct-2007 |
garbled |
Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA cpu based PPC ports that focused on sharing as much code as possible between the various ports to eliminate near-identical copies of files in every tree. Additionally there is a new PIC system that unifies the interface to interrupt code for all different OEA ppc arches. The work for this branch was done by a variety of people, too long to list here.
TODO: bebox still needs work to complete the transition to -renovation. ofppc still needs a bunch of work, which I will be looking at. ev64260 still needs to be renovated amigappc was not attempted.
NOTES: pmppc was removed as an arch, and moved to a evbppc target.
|
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base nick-csl-alignment-base matt-mips64-base ppcoea-renovation-base mjf-ufs-trans-base vmlocking-base
|
| 1.30 |
03-Jun-2007 |
xtraeme |
branches: 1.30.8; 1.30.10; 1.30.14; Make the Enhanced Speedstep driver available for i386 and amd64. To use it on EM64T CPUs supporting the EST CPUID feature. Note that some CPUs still don't work with this driver, like Xeon or Pentium 4.
Move the p[34]_get_bus_clock functions into its own file, intel_busclock.c and remove this code from i386/identcpu.c.
Tested on i386 by myself and amd64 by Tonerre.
|
|
Revision tags: yamt-idlelwp-base8
|
| 1.29 |
16-Apr-2007 |
ad |
branches: 1.29.2; Share the sysarch stuff between the x86 ports. PR kern/36046.
|
|
Revision tags: thorpej-atomic-base
|
| 1.28 |
20-Mar-2007 |
xtraeme |
Driver for Intel Thermal Monitor (feature TM) On-Demand Clock Modulation.
This works by changing the duty cycle of the clock modulation, and saves power and helps to not increase the temperature by software.
Adapted from OpenBSD/FreeBSD's p4tcc.
To enable it one must use "options INTEL_ONDEMAND_CLOCKMOD".
Tested by me in UP and SMP, ok'ed by Matthew R. Green.
|
| 1.27 |
20-Mar-2007 |
xtraeme |
MSR read and write IPI handlers for x86. A MSR will be read or written in all CPUs available in the system. This adds another member to struct cpu_info, ci_msr_rvalue; it will contain the value of the MSR in a previous operation.
Tested with clockmod in UP and SMP by me, tested with est in SMP by Daniel Carosone and Michael Van Elst.
Ok'ed by Andrew Doran and Matthew R. Green.
|
| 1.26 |
15-Mar-2007 |
xtraeme |
Ok... there were people really angry with this, backing it out.
|
| 1.25 |
15-Mar-2007 |
xtraeme |
Add a driver for the Pentium 4 and later models with feature TM (Thermal Monitor).
This driver will throttle the CPU clock modulation, saving some power, also known as ODMC (On Demand Modulation Clock).
The processor can change from 12.5% to 100% (there are two erratas, so two levels might be skipped in the worst case).
If supported, you'll see the following sysctl sub-tree:
machdep.p4tcc.throttling.target: CPU Clock throttling state (0 = lowest, 7 highest) machdep.p4tcc.throttling.current: current CPU throttling state machdep.p4tcc.throttling.available: list of CPU Clock throttling states
machdep.p4tcc.throttling.target = 2 machdep.p4tcc.throttling.current = 2 machdep.p4tcc.throttling.available = 7 6 5 4 3 2
Adapted from OpenBSD/FreeBSD.
|
| 1.24 |
05-Mar-2007 |
drochner |
branches: 1.24.2; 1.24.4; 1.24.6; clean up how cpus and ioapics are attached at the mainbus: Seperate "cpubus" and "ioapicbus" -- while they share a common "address space" (the apic id), the kernel doesn't use this fact. There are different data passed to cpus and apics, which caused some ugly polymorphism. This also saves the special "submatch" functions needed to distingush cpus and ioapics for autoconf. (And it makes that "apid" locators wired in the kernel configuration are honored now; this allows one to dumb down an mp box to singleprocessor by userconfig.) Print "apid" locators in the buses "print" function "as everyone does", so the per-port cpu drivers don't need to do it. Being here, constify "struct cpu_functions" and g/c the unused MP_PICMODE flag.
|
|
Revision tags: ad-audiomp-base
|
| 1.23 |
17-Feb-2007 |
daniel |
branches: 1.23.2; Add an opencrypto provider for the AES xcrypt instructions found on VIA C5P and later cores (also known as 'ACE', which is part of the VIA PadLock security engine). Ported from OpenBSD.
Reviewed on tech-crypto and port-i386, no objections to commiting this.
|
|
Revision tags: post-newlock2-merge
|
| 1.22 |
09-Feb-2007 |
ad |
Merge newlock2 to head.
|
|
Revision tags: newlock2-nbase newlock2-base
|
| 1.21 |
01-Jan-2007 |
ad |
Report on and where possible, try to work around some of the known errata for Athlon 64 and Opteron processors. Tested briefly by cube@ and elad@.
|
|
Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 netbsd-4-base
|
| 1.20 |
01-Oct-2006 |
bouyer |
branches: 1.20.2; Add ipmi(4) driver, from OpenBSD. This requires SMBios support, so add SMBios detection and mapping to bios32.c, also from OpenBSD (for now this is only compiled in if ipmi(4) is configured). The sensors and watchdog are accessible though envsys(4). Works on i386; some work is needed on amd64 to access the BIOS. It would eventually work on Xen if the SMBios is accessible (to be tested).
|
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
| 1.19 |
07-Aug-2006 |
xtraeme |
branches: 1.19.4; 1.19.6; * Do not change struct powernow_pst_s (I added another member in my previous patch) and this MUST be of that size, otherwise the tables won't be found.
* powernow_k8.c moved into x86/x86, it should work both i386 and amd64.
* Added more DPRINTFs needed to found the first problem.
* Create "machdep.powernow.frequency" again, I can't remember why I removed frequency... it should work with estd now.
* Do not try to call k[78]_powernow_init() if cpu is not AMD (thanks to christos).
And more things I can't remember, but this time it will work in Athlon 64 cpus and it won't crash in EM64T cpus.
|
| 1.18 |
06-Aug-2006 |
xtraeme |
AMD PowerNow!/Cool`n'Quiet driver for NetBSD/amd64, adapted from OpenBSD.
Tested on a few machines:
http://bigbird.dohd.org:3021/NetBSD/dmesg http://www.bsd.org.il/netbsd/acpi/dmesg
Thanks to cube, elad and others for testing and fixes.
Enabled by default on GENERIC.
|
| 1.17 |
04-Jul-2006 |
christos |
Apply fvdl's acpi pci interrupt configuration code. - MPACPI is no more. - MPACPI_SCANPCI -> ACPI_SCANPCI
|
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
|
| 1.16 |
03-Feb-2006 |
bouyer |
branches: 1.16.4; 1.16.12; Split move interrupt-related PCI functions from pci_machdep.c to pci_intr_machdep.c. In Xen-3 registers access is done the normal way but interrupts need custom setup. Proposed on port-amd64, port-i386 and port-xen a week ago.
|
| 1.15 |
30-Dec-2005 |
jmmv |
branches: 1.15.2; 1.15.4; Add a 'struct bootinfo' to represent the bootinfo structure used in the kernel by x86 platforms (instead of a simple char *). This way, the code in, e.g., lookup_bootinfo, is a bit easier to understand.
While here, move the lookup_bootinfo function used in x86 platforms (amd64, i386 and xen) to a common file (x86/x86_machdep.c), as it was exactly the same in all of them.
|
| 1.14 |
11-Dec-2005 |
christos |
merge ktrace-lwp.
|
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
| 1.13 |
03-Jul-2005 |
cube |
branches: 1.13.2; Move definitions for PCI_*_FIXUP to files.x86 so that ACPI compiles for amd64...
|
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base
|
| 1.12 |
20-Oct-2004 |
thorpej |
branches: 1.12.10; Move boot device detection code from i386 and amd64 ports to x86_autoconf.c. Rename i386_alldisks and x86_64_alldisks to x86_alldisks, adjust other references to compensate.
|
| 1.11 |
30-Aug-2004 |
drochner |
Phase out the use of a string as first "attach args" member to control which bustype should be attached with a specific call to config_found() (from a "mainbus" or a bus bridge). Do it for isa/eisa/mca and pci/agp for now. These buses all attach to an mi interface attribute "isabus", "eisabus" etc., and the autoconf framework now allows to specify an interface attribute on config_found() and config_search(), which limits the search of matching config data to these which attach to that specific attribute. So we basically have to call config_found_ia(..., "foobus", ...) where such a bus is attached. As a consequence, where a "mainbus" or alike also attaches other devices (eg CPUs) which do not attach to a specific attribute yet, we need at least pass an attribute name (different from "foobus") so that the foo bus is not found at these places. This made some minor changes necessary which are not obviously related to the mentioned buses.
|
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
| 1.10 |
08-Oct-2003 |
bouyer |
pciide_machdep.c depends on pciide_common, not pciide. Pointed out and fix tested by Marc Recht.
|
| 1.9 |
06-Sep-2003 |
fvdl |
Move the bulk of pci_intr_string into a seperate intr_string function. Use that new function to print the pciide compat interrupt in pciide_machdep.c. Share pciide_machdep.c between amd64 and i386.
|
| 1.8 |
29-May-2003 |
fvdl |
branches: 1.8.2; Add the options MPBIOS_SCANPCI and MPACPI_SCANPCI to configure PCI roots with the MPBIOS/ACPI bus information, by walking through the buses, and descending down every bus that hasn't been marked configured yet.
|
| 1.7 |
11-May-2003 |
fvdl |
Update for acpi file move to sys/arch/x86/x86.
|
| 1.6 |
25-Apr-2003 |
fvdl |
Share some common cache info cpuid code between i386 and x86_64.
|
| 1.5 |
12-Mar-2003 |
thorpej |
Split bus_space and bus_dma into separate files.
|
| 1.4 |
01-Mar-2003 |
fvdl |
lock_machdep.c moved here from arch/i386/i386.
|
| 1.3 |
27-Feb-2003 |
fvdl |
Add consinit.c
|
| 1.2 |
27-Feb-2003 |
fvdl |
Catch up with isa_machdep.c and pci_machdep.c move.
|
| 1.1 |
26-Feb-2003 |
fvdl |
Move some files out of i386 into x86, so that they can be shared with other ports.
|