Skip to content

Instantly share code, notes, and snippets.

mmc_cid=035344534c3038478049e841e30106dd
mmc_csd=400e00325b5900003b377f800a4040af
mmc_date=06/2016
mmc_dsr=0x404
mmc_erase_size=512
mmc_fwrev=0x0
mmc_hwrev=0x8
mmc_manfid=0x000003
mmc_name=SL08G
mmc_ocr=0x00200000
Allwinner SoCs feature something called a SID (Security ID) which should be available with
mainline kernel as /sys/bus/nvmem/devices/sunxi-sid0/nvmem. From the first bytes the SoC
model might be detectable once the SIDs are known. Unfortunately information in linux-sunxi
wiki is/was a bit sparse and outdated: https://linux-sunxi.org/SID_Register_Guide
The following list is based on linux-sunxi wiki contents and complemented with own checks
(crawling through sbc-bench submissions and conducting tests on own devices).
SoCs are sorted by chip ID, starting with 'old scheme':
A10 (1623) 162367* --> 1623*
https://github.com/CoreELEC/bl301/blob/1b435f3e20160d50fc01c3ef616f1dbd9ff26be8/arch/arm/include/asm/cpu_id.h#L21-L42
https://www.kernel.org/doc/Documentation/devicetree/bindings/arm/amlogic.txt
Amlogic chip ids: https://github.com/CoreELEC/linux-amlogic/blob/ab1ab097d1a7b01d644d09625c9e4c7e31e35fb4/arch/arm64/kernel/cpuinfo.c#L135-L158
More cpuinfo: http://tessy.org/wiki/index.php?Arm#ae54e1d6 (archived at https://archive.md/nf6kL)
https://github.com/pytorch/cpuinfo/tree/master/src/arm/linux/
With ARMv7 SoCs (or ARMv8 SoCs booting a 32-bit kernel) dmesg output starts with a line identifying core type and stepping of cpu0:
CPU: ARMv7 Processor [410fc051] revision 1 (ARMv7), cr=10c5387d <- Cortex-A5 / r0p1 / Amlogic S805
CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7), cr=10c5387d <- Cortex-A7 / r0p3 / Exynos 5422
CPU: ARMv7 Processor [410fc072] revision 2 (ARMv7), cr=10c5387d <- Cortex-A7 / r0p2 / MediaTek MT6589/TMK6588
Recent Rockchip BSP kernels include something like this in dmesg output: rockchip-cpuinfo cpuinfo: SoC : 35880000
35280000 --> Hlink H28K
35281000 --> Hlink H28K
35661000 --> Quartz64, RK3566 EVB2 LP4X V10 Board, Firefly RK3566-ROC-PC
35662000 --> EmbedFire LubanCat-Zero, RK3566 BOX DEMO V10 ANDROID Board, Radxa Zero 3, Rock 3C, Radxa CM3,
Orange Pi 3B, Orange Pi CM4
35681000 --> only early RK3568 devices showed this silicon revision (e.g. Firefly RK3568-ROC-PC/AIO-3568J,
Radxa E25)
35682000 --> AIO-3568J HDMI, CPdevice Spring2 Plus Board, Firefly RK3568-ROC-PC HDMI, Forlinx OK3568-C Board,
APM X-Gene / r0p0: APM 883208-X1
APM X-Gene / r3p2: APM Emag 8180
Apple Icestorm / r1p1: Apple M1
Apple Firestorm / r1p1: Apple M1
Apple Icestorm / r2p0: Apple M1 Pro
Apple Firestorm / r2p0: Apple M1 Pro
Apple Blizzard / r1p0: Apple M2
Apple Avalanche / r1p0: Apple M2
ARM11 MPCore / r0p5: PLX NAS7820
ARM1176 / r0p7: Broadcom BCM2835
3V7_WL_SW_A current(0)=0.00390372A
3V3_SYS_A current(1)=0.05562801A
1V8_SYS_A current(2)=0.16493220A
DDR_VDD2_A current(3)=0.02049453A
DDR_VDDQ_A current(4)=0.00000000A
1V1_SYS_A current(5)=0.18152300A
0V8_SYS_A current(6)=0.32693650A
VDD_CORE_A current(7)=0.71440000A
3V3_DAC_A current(17)=0.48840000A
3V3_ADC_A current(18)=0.42735000A
Alder Lake:
i9: 6-8 P-cores, 8-16 E-cores, 4.8-5.5 GHz, 24-30 MB "Smart Cache"
i7: 2-8 P-cores, 4-8 E-cores, 4.6-5.0 GHz, 12-25 MB "Smart Cache"
i5: 4-6 P-cores, 4-8 E-cores, 4.2-4.9 GHz, 12-20 MB "Smart Cache"
i3: 2-4 P-cores, 0-8 E-cores, 4.0-4.3 GHz, 10-12 MB "Smart Cache"
Pentium Gold 850*, Celeron 730*: 1 P-core, 4 E-cores, 8 MB "Smart Cache"
Raptor Lake:
i9: 6-8 P-cores, 8-16 E-cores, 5.0-5.8 GHz, 24-36 MB "Smart Cache"
i7: 2-8 P-cores, 4-12 E-cores, 4.8-5.4 GHz, 12-30 MB "Smart Cache"
AX45MP core in Renesas RZ/Five (R9A07G043)
mvendorid : 0x31e (Andes)
marchid : 0x8000000000008a45
mimpid : 0x500
SiFive U74 cores in JH7110
mvendorid : 0x489 (SiFive)
marchid : 0x8000000000000007
mimpid : 0x4210427
@ThomasKaiser
ThomasKaiser / rk3588-increase-opp-microvolt.dts
Created September 28, 2022 14:07
rk3588-increase-opp-microvolt.dts
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&cluster1_opp_table>;
__overlay__ {
opp-408000000 {
opp-microvolt = <675000 675000 1100000>,
<675000 675000 1100000>;
};
#!/bin/bash
InstallLocation=/usr/local/src
[ -x "${InstallLocation}"/mhz/mhz ] || (echo "You need to run sbc-bench at least once to meet prerequisits" ; exit 1)
TempFile="$(mktemp /tmp/${0##*/}.XXXXXX)"
ReportClockSpeedandTemperature() {
MeasuredSpeed=$(( $(taskset -c 1 "${InstallLocation}"/mhz/mhz 3 100000 | awk -F" cpu_MHz=" '{s+=$2} END {printf "%.0f", s}') / 3 ))
CPUTemp=$(awk '{printf ("%0.1f",$1/1000); }' </sys/devices/virtual/thermal/thermal_zone0/temp)
if [ -s "${TempFile}" ]; then