Decode · ARM

MIDR 0x410fd034 decoded: Cortex-A53 r0p4

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]

The kernel's first boot line on an ARM64 system typically includes the MIDR (Main ID Register) value in brackets:

Booting Linux on physical CPU 0x0000000000 [0x410fd034]

MIDR is a 32-bit read-only register that identifies the CPU implementation. Bit-by-bit decoding of 0x410fd034:

  • Bits 31:24: Implementer: 0x41 = ASCII A = ARM Limited. Other common values: 0x51 (Qualcomm), 0x42 (Broadcom), 0x43 (Cavium/Marvell), 0x53 (Samsung).
  • Bits 23:20: Variant: 0x0 = major revision r0.
  • Bits 19:16: Architecture: 0xF = fully described by CPUID feature registers (used from ARMv7 onward).
  • Bits 15:4: Part Number: 0xD03 = Cortex-A53. Other common ARM parts: 0xD08 (A72), 0xD07 (A57), 0xD09 (A73), 0xD0A (A75), 0xD0B (A76).
  • Bits 3:0: Revision: 0x4 = minor revision p4.

Decoded verdict: ARM Cortex-A53 r0p4. This is the little-core Cortex used across a huge swath of networking Snapdragon / IPQ, older Snapdragon phones, Allwinner H-family, TI Sitara AM6x, Broadcom BCM2xxx, and many other SoCs from roughly 2015-2020.

Why the revision matters: ARM ships errata sheets keyed to specific r/p combinations. Cortex-A53 r0p4 has a well-known set of errata (compare to r0p0 or r0p3 which are different). The kernel's cpu-features and workaround code checks MIDR at boot and applies platform-specific fixes; you can grep dmesg for workaround or erratum to see which ones fired.

Debugging tip: if you're chasing a hardware-specific bug, the MIDR in dmesg is the ground truth for what silicon you're on. Vendor datasheets sometimes lie about "which A53 revision" a chip integrates; MIDR doesn't.

References

Full walkthrough: /blog/qualcomm-sbl-secure-boot

Source log: /samples/bootintel-4.txt

More decoders: /decode · /faq

Have a boot log with something you can't decode? Paste it into the free fingerprinter. It identifies bootloader / kernel / SoC / autoboot exposure client-side, nothing uploaded.