507 Commits
Author SHA1 Message Date
Dr-Noob ad5c9e6037 Fix warning 2024-10-07 21:39:30 +01:00
Dr-Noob 6ada3ec361 Fix printer bug and improve colors 2024-10-07 21:30:59 +01:00
Dr-Noob 91c92bbdf6 Fix: Do not enter get_uarch_from_riscv_cpuinfo with a zero marchid and use strtoul instead of strtol for unsigned long 2024-10-07 08:44:55 +01:00
Dr-Noob d0cc04529c Some documentation 2024-10-06 18:18:42 +01:00
Dr-Noob f826125395 Update SoC name 2024-10-06 18:15:18 +01:00
Dr-Noob 2272423163 Implement get_riscv_cpuinfo. Needs testing and further documentation 2024-10-02 08:43:18 +01:00
Dr-Noob 5194976739 WIP 2024-09-29 14:21:11 +01:00
Dr-Noob 417d7ce730 WIP 2024-09-22 22:33:04 +01:00
Dr-Noob 01406778be [v1.06][ARM] Add new Dimensity MTK SoCs (#288) 2024-09-22 22:13:50 +01:00
Dr-Noob 7d786ca1b7 [v1.06][ARM] Implement automatic SoC inferring from device tree
This is a major change in the SoC detection methodology.

Previous to this commit, the SoC (model, vendor and manufacturing
process) would only appear if the exact model was found in the LUT.
In other words, every supported SoC must be added manually to the LUT.
This would allow to show the precise SoC model and the manufacturing
process, which can only be hardcoded (i.e., it cannot be dynamically
determined).

This commit introduces guess_raw_soc_from_devtree, a new way of
inferring the SoC. This simply reads from the compatible file in the
device tree and tries to find a matching vendor to that string. If
there is a match, then we simply copy the model also from the
compatible string and show it directly.

This new implementation will show a less "precise" SoC name and
no manufacturing process because there would be no hardcoded value for
that SoC. However, it improves the scalability of the SoC detection
significantly because there is no longer a need to hardcode every
single SoC.

Lastly, there are some SoC vendors intentionally left outside the
scope of this function: For now I prefer to keep updating manually
the LUT for those to ensure the highest quality detection (e.g.,
showing precise SoC name and manufacturing process).
2024-09-22 17:11:31 +01:00
Dr-Noob 2e2e660b97 [v1.06][ARM] Add more NVIDIA SoCs 2024-09-12 08:08:53 +01:00
Dr-Noob fbd50822cf [v1.06][ARM] Add more Marvell SoCs 2024-09-12 07:51:12 +01:00
Dr-Noob bc8a779de6 [v1.06][ARM] Add more Amlogic SoCs 2024-09-11 18:38:56 +01:00
Dr-Noob 995ebc6736 [v1.06][RISCV] Add zicbop multi-letter extension (fixes #285) 2024-09-11 07:58:12 +01:00
Dr-Noob ab43a11ef2 [v1.06][X86] Fix accurate-pp in hybrid architectures (fixes #169)
Overview of changes:
- Adds field max_pp in frequency struct to hold the max freq for peak-performance estimation.
- Instead of getting the max frequency in get_peak_performance, we get it in get_cpu_info (more natural).
- Adds fill_frequency_info_pp which fills the max_pp of the passed cpu by calling measure_frequency.

The approach is to call measure_frequency with a vector where the max frequencies are stored. Then,
the first time measure_frequency is called, the frequency is measured while running all the cores,
and the max frequency is computed per module (e.g., in the case of 2 modules, we would compute
the freq for the first and for the second module), and saved into this vector. Subsequent calls to
measure_frequency will just read the corresponding value for the vector. In other words, the frequency
is only measured once for the whole CPU.
2024-09-10 22:43:23 +01:00
Wunk edbfc9722e [v1.06][ARM] Add Windows on Arm support (#273) 2024-09-10 09:40:46 +02:00
Dr-Noob 57bbe2de4f [v1.06][X86] Add Sapphire Rapids uarch (#281) 2024-09-10 08:32:18 +01:00
Dr-Noob 278efb75c9 [v1.06][ARM] Add support for Marvell SoC (#279) 2024-09-10 07:41:11 +01:00
Dr-Noob 343150e516 [v1.06][ARM] Add Tegra Orin (#275) 2024-09-09 08:19:18 +01:00
Dr-Noob 1e2c7e565c [v1.06][ARM] Add SC8280XP (on device tree) (#272) 2024-09-09 07:11:57 +01:00
Dr-Noob 977c35a9af [v1.06][X86] Add Zen5 uarch 2024-09-05 20:14:52 +01:00
Dr-Noob eb8fad2843 [v1.06][ARM] Simplify is_ARMv8_or_newer 2024-09-02 08:27:58 +01:00
Dr-Noob bd38951439 [v1.06][ARM] Update get_vpus_width to match SVE detection 2024-09-02 08:26:58 +01:00
Dr-Noob 057a36efd5 [v1.06][ARM] Add new microarchitectures 2024-09-02 08:20:40 +01:00
Dr-Noob 56901d70ab [v1.06][ARM] Add more NXP SoCs 2024-08-31 18:40:35 +01:00
Dr-Noob 5bd507e4b6 [v1.06][ARM] Add support for Amlogic A311D (#268) 2024-08-31 09:37:50 +01:00
Dr-Noob 9192ba3eb8 [v1.06][ARM] Add (another) cpufamily for M3 and set the ARM version, fixing peak performance wrong result (#230) 2024-08-29 08:13:05 +01:00
Dr-Noob 15a803dae5 [v1.06][ARM] Check if HWCAP2_SVE2 is defined before using it (fixes #270) 2024-08-28 21:26:27 +01:00
Dr-Noob 0507355372 [v1.06][X86] Bugfix: set affinity in --accurate-pp
There are cases where measure_frequency is called after binding the
process to a specific core via bind_to_cpu (e.g., when iterating over
modules in hybrid architectures). Thus, in measure_frequency we must
set the affinity of the newly created threads, ensuring they are
binded to the right core.
2024-08-26 12:31:18 +01:00
Dr-Noob 9f66a137c5 [v1.06][ARM] Add support for NXP i.MX 8M Plus (#261) 2024-08-25 17:44:29 +01:00
Dr-Noob 324d0fbe94 [v1.06][PPC] Add support for Espresso (#231) 2024-08-25 16:50:58 +01:00
Dr-Noob af8bb16302 [v1.06][ARM] Fix for commit 025e28c 2024-08-24 15:44:06 +01:00
Dr-Noob 40374121b8 [v1.06] Replace emalloc+memset with ecalloc when possible. Refactor some memory allocation code 2024-08-24 15:32:33 +01:00
Dr-Noob 025e28c516 [v1.06][ARM] Set Android properties as defines 2024-08-24 14:47:34 +01:00
Dr-Noob 7ad19d113c [v1.06] Remove soc_ prefix from field names in system_on_chip struct 2024-08-24 12:44:24 +01:00
Dr-Noob 13605ed0ce [v1.06][ARM] Remove BCM prefix from Broadcom vendor string 2024-08-24 12:34:57 +01:00
Dr-Noob 7689355a72 [v1.06][ARM] Add support for Apple SoCs in Asahi Linux (#263) 2024-08-23 08:37:13 +01:00
Timothy WarrenandTimothy Warren 321a1ec375 [v1.06][X86] Add old Intel and AMD CPUs (#260)
* Add Intel and AMD 486, Intel Pentium Pro, and AMD K5 chips
* Update infer_cpu_name_from_uarch to support added CPU uarches
* Add sources for more of the legacy chip data
* Add the more specific codename for Intel Pentium MMX Mobile chips
* Document source of AMD 486/K5 variants
* Add link to documentation for Intel 486

---------

Co-authored-by: Timothy Warren <[email protected]>
2024-08-20 09:25:01 +02:00
Dr-Noob 48c598cf3b [v1.06][ARM] Add support for Ampere Altra (#262) 2024-08-19 08:46:07 +01:00
Dr-Noob aa94389bbe [v1.06][ARM] Fix two off-by-one bugs (#264) 2024-08-19 08:39:52 +01:00
Er2 8d10a03adc [v1.06][FreeBSD][Apple] Implement fallback frequency calculation (#251) 2024-08-19 09:21:41 +02:00
Dr-Noob 2410fd16d3 [v1.06] Bump version 2024-08-18 15:12:27 +01:00
Dr-Noob f63178b41c [v1.05][ARM] Fix compile warning in SVE cntb 2024-08-10 11:23:13 +01:00
Dr-Noob 2788e6831e [v1.05][ARM] Fix SVE cntb datatype 2024-08-10 11:16:22 +01:00
Dr-Noob 146f2a13aa [v1.05][ARM] Show SVE cntb in debug 2024-08-10 11:11:46 +01:00
Dr-Noob 90624b9aaa [v1.05][ARM] Preeliminary support for SVE detection (#259) 2024-08-10 11:08:39 +01:00
Dr-Noob e42f04cca8 [v1.05][ARM] Add support for Kirin 9000S and TSV120 (#259) 2024-08-10 11:03:22 +01:00
Dr-Noob 50f66ec571 [v1.05][X86] Fix compilation issue in clang and fallback to get_topology_from_udev also in AMD 2024-08-03 15:45:10 +01:00
Dr-Noob cb186a2f97 [v1.05][X86] Do not show empty SSE if not supported (#260) 2024-08-02 10:09:51 +01:00
Dr-Noob 6164884415 [v1.05][ARM] Add latest Snapdragon SoCs (closes #256) 2024-08-02 08:07:47 +01:00