Search code examples
armraspberry-pi4armv7armv8

Confusion regarding ARM architecture used in Raspberry_Pi 4 Model B


I have a Raspberry Pi 4 Model B Rev 1.1 board. When I gave the command cat /proc/cpuinfo, I got below logs.

processor       : 0
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 270.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

Similar data was obtained for processor 1, 2 and 3.

But product specification https://www.raspberrypi.com/products/raspberry-pi-4-model-b/specifications/ informs that the board uses Cortex-A72 (ARM v8).

So from the board logs I am getting the model as ARMv7 Processor rev 3 (v7l) but from board specification it is Cortex-A72 (ARM v8). I was confused at why this difference in v7 architecture (board logs) and v8 architecture (product specs) is happening. Can anyone please help me to clear this confusion?


Solution

  • The level of precision in the information available in /proc/cpuinfo does vary according to my experience, the important one would be the CPU part.

    In your case, it is 0xd08, which means you are using a Cortex-A72 according to the Arm documentation here:

    Table 4-16 MIDR_EL1 bit assignments
    Bits    Name    Function
    [31:24] Implementer 
    
    Indicates the implementer code. This value is:
    0x41    ARM Limited.
    [23:20] Variant 
    
    Indicates the variant number of the processor. This is the major revision number in the r part of the rp description of the product revision status. This value is:nnnn
    0   Major revision number.
    [19:16] Architecture    
    
    Indicates the architecture code. This value is:
    0xF Defined by CPUID scheme.
    [15:4]  Primary part number 
    
    Indicates the primary part number. This value is:
    0xD08   Cortex-A72 processor.
    [3:0]   Revision    
    
    Indicates the minor revision number of the processor. This is the minor revision number in the p part of the rp description of the product revision status. This value is:nnnn
    1   Minor revision number.
    

    On a Raspberry PI 3, I am getting 0x0d03, which is consistent with the BCM2835 having a Cortex-A53 core:

    [15:4]  PartNum 
    
    Indicates the primary part number. This value is:
    
    0xD03
    
        Cortex-A53 processor.
    

    Please note that you may be running a 32 bit version of Linux as well. You can check you are running an aarch64 version by using the following commands (tested on a Cortex-A53 running a 64 bit version of Armbian):

    uname -a
    Linux espressobin 5.15.93-mvebu64 #23.02.2 SMP PREEMPT Fri Feb 17 23:51:39 UTC 2023 aarch64 GNU/Linux
    
    file $(which bash)
    /usr/bin/bash: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=96c22dfc3c74ccf4ba77d9cce6fc2c5e635456c1, for GNU/Linux 3.7.0, stripped
    

    If you don't see aarch64 in the outputs for those two commands, this would mean you are running a 32 bit version of linux, and you want to install, say, Raspberry Pi OS (64-bit), from here.

    As pointed-out in the comments above, this would explain why /proc/cpuinfo reports an ARMv7 Processor rev 3 (v7l). This is why you should rather rely on the Primary part number for the purpose of identifying the exact processors you are using (your question seemed more related to the processors you were using than the operating system you were running IMHO).


    Using 2023-05-03-raspios-bullseye-arm64-lite.img, we can see that architecture is set to 8, but the model name is not populated:

    uname -a
    Linux raspberrypi3 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
    
    cat /proc/cpuinfo
    processor       : 0
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm crc32 cpuid
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    processor       : 1
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm crc32 cpuid
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    processor       : 2
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm crc32 cpuid
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    processor       : 3
    BogoMIPS        : 38.40
    Features        : fp asimd evtstrm crc32 cpuid
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    Hardware        : BCM2835
    Revision        : a22082
    Serial          : 0000000028b5385b
    Model           : Raspberry Pi 3 Model B Rev 1.2
    

    Using 2023-05-03-raspios-bullseye-armhf-lite.img, we can see that architecture is set to 7, and that the model name is populated

    uname -a
    Linux raspberrypi3 6.1.21-v7+ #1642 SMP Mon Apr  3 17:20:52 BST 2023 armv7l GNU/Linux
    user@raspberrypi3:~$ cat /proc/cpuinfo
    processor       : 0
    model name      : ARMv7 Processor rev 4 (v7l)
    BogoMIPS        : 38.40
    Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    processor       : 1
    model name      : ARMv7 Processor rev 4 (v7l)
    BogoMIPS        : 38.40
    Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    processor       : 2
    model name      : ARMv7 Processor rev 4 (v7l)
    BogoMIPS        : 38.40
    Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    processor       : 3
    model name      : ARMv7 Processor rev 4 (v7l)
    BogoMIPS        : 38.40
    Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x0
    CPU part        : 0xd03
    CPU revision    : 4
    
    Hardware        : BCM2835
    Revision        : a22082
    Serial          : 0000000028b5385b
    Model           : Raspberry Pi 3 Model B Rev 1.2