Commit Graph

147 Commits

Author SHA1 Message Date
msaitoh 77e25382c8 Add Ice Lake and Tremont from the latest Intel SDM. 2019-02-05 08:07:59 +00:00
mrg 37649e4074 - enlarge buffer to avoid snprintf() truncation 2019-02-03 10:48:46 +00:00
skrll 907cdcbbc0 Fix mvfr0.fptrap = 0 description 2019-01-23 07:41:54 +00:00
maxv 3426341fca Handle the NVMM signature. 2019-01-06 16:13:51 +00:00
ryo 7596da58e1 - show detail of debug feature register (ID_AA64DFR0_EL1)
- print raw value of registers when verbose flag is set.
- keep forward compatibility. read kernel's aarch64_sysctl_cpu_id, but avoid unknown system registers.
2018-12-20 07:10:23 +00:00
ryo 8a4107013c Add ThunderX IDs 2018-11-26 18:08:41 +00:00
msaitoh 942ff4944d Print Intel CPUID Architectural Performance Monitoring leaf Fn0000000a. 2018-11-26 04:45:13 +00:00
msaitoh ee702c097f Decode Intel/AMD MONITOR/MWAIT leaf. 2018-11-22 06:15:06 +00:00
msaitoh 7c1e0af10e Decode package, core and SMT id if CPUID 0x0b is available on Intel processor.
If the value is different from the kernel value, we should fix the kernel code.

TODO: Use 0x1f if it's available.
2018-11-21 12:19:51 +00:00
msaitoh b430389aea - AMD also reports CPUID 7's highest subleaf. Print it.
- Use macro.
2018-11-21 10:34:53 +00:00
msaitoh ee8540f68c - Use ci_feat_val[7] as CPUID 7 %edx to match x86/cpu.h
- AMD also has CPUID 6.
- Remove unused code for coretemp.
- Consistently use descs[] instead of data[].
2018-11-21 06:10:25 +00:00
mrg 0e9d255287 rewrite the CPU identification on arm64:
- publish per-cpu data
- publish a whole bunch of info in struct aarch64_sysctl_cpu_id
  instead of various individual nodes (there are 16 total.)
- add MIDR extractor bits
- define ARMv8.2-A id_aa64mmfr2_el1 and id_aa64zfr0_el1 regs,
  but avoid using them until we make sure they exist.  (these
  members are added to aarch64_sysctl_cpu_id to avoid future
  compat issues.)

the arm32 and aarch32 version of these need to be adjusted as
well (and aarch32 data published at all.)  still trying to
work out how to make the same userland binary running on a
real arm32 or an aarch32 system can work sanely here.

ok ryo@.
2018-11-20 01:59:51 +00:00
msaitoh d6138c5ea5 Whitespace fix. No functional change. 2018-06-20 04:04:50 +00:00
ryo cc7da5d4e5 TGran64 indication was actually the opposite 2018-05-08 11:42:43 +00:00
ryo 2972297404 add aarch64 support for cpuctl identify. 2018-05-03 15:47:36 +00:00
msaitoh d2213cce79 From the latest Intel SDM:
- Add Xeon Phi 7215, 7285 and 7295
- Add Coffee Lake
2018-03-30 09:24:40 +00:00
msaitoh 0a42effe43 Add yet another Shared L2 TLB (2M/4M pages).
XXX need redesign.
2018-03-09 08:49:32 +00:00
msaitoh c27ae56af8 Calculate way and number of entries correctly from CPUID leaf 18H. 2018-03-05 10:54:05 +00:00
msaitoh cfe5ab1fa2 - Parse the TLB info from `cpuid leaf 18H' on Intel processor. Currently,
this change doesn't decode perfectly.  Tested with Gemini Lake. It has
  two L2 Shared TLB. One is 4MB and another is 2MB/4MB but former isn't
  printed yet:

	cpu0: ITLB 1 4KB entries 48-way
	cpu0: DTLB 1 4KB entries 32-way
	cpu0: L2 STLB 8 4MB entries 4-way

  Need some rework for struct x86_cache_info.
- Use aprint_error_dev() for error output.
2018-03-05 05:50:37 +00:00
mrg 8ea873287d implement cpuctl identify for sparc and sparc64.
sparc:
- move enum vactype and struct cacheinfo into cpu.h
- move the cache flags from cpuinfo.flags into CACHEINFO.c_flags
  (this allows the new cache_printf_backend() to see them.)
  remove unused CPUFLG_CACHEIOMMUTABLES and CPUFLG_CACHEDVMA.
- align xmpsg to 64 bytes
- move cache_print() into cache_print.h so it can be shared with
  cpuctl.  it only depends upon a working printf().
- if found, store the CPU node's "name" into cpu_longname.  this
  changes the default output to show the local CPU not the
  generic CPU family.  eg:
  cpu0 at mainbus0: mid 8: Ross,RT625 @ 90 MHz, on-chip FPU
  vs the generic "RT620/625" previously shown.
- for each CPU export these things:
  - name
  - fpuname
  - mid
  - cloc
  - freq
  - psr impl and version
  - mmu impl, version, and number of contexts
  - cacheinfo structure (which changed for the first time ever
    with this commit.)

sparc64:
- add a minimal "cacheinfo" structure to export the i/d/e-cache
  size and linesize.
- store %ver, cpu node "name" and cacheinfo in cpu_info.
- set cpu_info ver, name and cacheinfo in cpu_attach(), and
  export them via sysctl, as well as CPU ID and clock freq

cpuctl:
- add identifycpu_bind() that returns false on !x86 as their
  identify routines do not need to run on a particular CPU to
  obtain its information, and use it to avoid trying to set
  affinity when not needed.
- add sparc and sparc64 cpu identify support using the newly
  exported values.
2018-01-16 08:23:17 +00:00
mrg faba61de75 note the default path for ucode updates can be found in sysctl. 2018-01-14 00:45:54 +00:00
msaitoh 5bd8e5c45d Print Intel cpuid 7 %edx.
Example output of cpuctl -v identify 0:

+cpu0: 00000007: 00000000 000027ab 00000000 0c000000
(snip)
+cpu0: SEF edx 0xc000000<IBRS,STIBP>
2018-01-10 07:08:35 +00:00
msaitoh 4a84e4a57f Update from Intel SDM:
0x55: Xeon Scalable (Skylake)
 0x57: Xeon Phi [357]200 (Knights Landing)
 0x66: Future Core (Cannon Lake)
 0x85: Future Xeon Phi (Knights Mill)
2017-10-19 03:09:55 +00:00
msaitoh 798eec36f8 Update from the latest Intel SDM:
0x5c: Atom (Goldmont)
 0x5f: Atom (Goldmont, Denverton)
 0x7a: Atom (Goldmont Plus)
2017-10-17 14:48:42 +00:00
msaitoh 379e4ad141 - Print ci_feat_val[5] (Structured Extended Feature leaf Fn0000_0007 %ebx) on
AMD, too.
- Print ci_feat_val[6] (Fn0000_0007 %ecx) on Intel.
2017-10-16 10:10:48 +00:00
msaitoh ed892e9a7b Define CPUID Fn00000001 %ebx bits and use them. No functional change. 2017-09-07 06:40:42 +00:00
msaitoh eedad4ff5c Update from the latest Intel SDM:
- Denverton
 - Future Xeon Phi
 - 7th gen Core (Kaby Lake)
2016-10-11 04:16:28 +00:00
wiz fd9dd2812d Sort SEE ALSO. 2016-09-17 20:48:04 +00:00
jdolecek 2c0412b4a8 link back to intrctl(8), it xrefs cpuctl(8) 2016-09-17 19:35:21 +00:00
msaitoh 3ee664bbf4 Update processor families from the latest Intel SDM:
- 06_4FH: Add Xeon E7 v4 and Core i7-69xx Extreme Edition
- 06_57H: Xeon Phi [357]200
2016-07-21 08:37:18 +00:00
msaitoh cbd48b4fa7 Add some name from the latest Intel SDM.
- Quark X1000, Xeon E5 v4 and the future processors.
2016-04-27 08:53:28 +00:00
msaitoh 50eab7c968 - Add structure extended feature registers into ci_feat_val[]. The locations
are the same as x86/include/cpu.h. Curreltly those values are not used yet.
- KNF.
2016-04-27 06:58:06 +00:00
christos ffeb8dbf4e Define _KERNTYPES for things that need it. 2016-01-23 21:22:45 +00:00
msaitoh 0f62afa17e From the latest Intel SDM:
- Add Xeon E3-1200 v5
- Change 0x1c from "Atom Family" to "45nm Atom Family"
2016-01-08 02:28:44 +00:00
msaitoh 29c28998b8 Model 0x5e is also 6th gen Core or Xeon E3-1500 v5 like model 0x4e. 2015-12-04 05:34:59 +00:00
mrg d94f57291f allow most commands to specify more than one cpu. now you can online or
offline (or identify, or intr/nointr) a list of cpus all together.
2015-11-16 03:34:50 +00:00
mrg f94c9137cf convert getcpuid() to take char* not char** 2015-11-16 02:04:32 +00:00
mrg 0e5e5d5b01 use stdbool.h 2015-11-16 02:02:41 +00:00
msaitoh df71a53179 Add 6th gen Core, Xeon E3-1500 v5 and Xeon D-1500 from the latest Intel SDM. 2015-10-19 02:47:05 +00:00
msaitoh a62e5a29f2 Add Xeon E5-4600 v3, Xeon E3-1200 v4 etc. from the latest Intel SDM. 2015-07-01 15:46:26 +00:00
msaitoh 04cf945ec6 Update some Intel CPU models (Sky Lake, Broadwell and Atom X[357]). 2015-05-08 07:29:08 +00:00
msaitoh c034104b35 Update from Intel SDM:
- Add Atom Z8000, Future gen Xeon (Broadwell), Next gen Xeon Phi and so on.
- Add comments.
2015-03-27 05:31:34 +00:00
tnn d3bf9a40c8 xgetbv expects XCR0 to be speficied in %ecx, don't leave %ecx undefined 2015-03-01 18:02:42 +00:00
msaitoh d23838029a Fix a bug that an unknown command is printed as "(null)".
Reported by Fredrik Pettai.
2014-12-16 04:07:40 +00:00
msaitoh cbb847784d Don't print the microcode version if the ioctl failed to not to
print garbage.
2014-12-11 12:21:44 +00:00
msaitoh 5723de76d5 Add newline if ci_tsc_freq is 0 to not to break the output. 2014-12-11 10:07:45 +00:00
wiz 4cb289deb0 Bump date. Quote minus with a backslash, for PostScript/PDF output. 2014-11-20 13:16:05 +00:00
msaitoh ce7f2410b4 Fix manual and usage bug. The ucode command can take [cpuno] argument. 2014-11-20 12:49:13 +00:00
msaitoh 1ce97493fe Move some printf()s from cpu_probe_base_features() to identifycpu().
Those printf()s are used for "identify" command but cpu_probe_base_features()
is shared by ucodeupdate_check(), too. This change fixes a problem that
the "ucode" command print extra output.
2014-11-20 10:31:10 +00:00
skrll 519271bdcb kern/49379: Hypervisor's name typo 2014-11-11 08:23:17 +00:00