-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
collect/present extra data #56
Comments
Here is the data I know: aarch32-el2 is supported by all early Cortex (A53, A57, A72, A35, A73, A75), but none of the later ones (A76+, Neoverse) All cores except Apple's support 64K pages. Older apple cores had 64K but not 16K pages Physical address size is totally weird, and I can't ever remember. Cortex-A72 and A75 had a fairly large 44-bit physical address space, while A53, A73, A76, A77, A78, A510, A710, A715 only use 40 bits and Apple M1 is even smaller with 36 bits. Neoverse N1/N2/V1 in turn all have 48 it physical addressing. |
So something like this will be needed (example without checking are values are right): 0x41:
cores:
'0xd03':
16k: false
4k: true
64k: true
aarch32: true
aarch32-el0: true
aarch32-el2: true
address_physical_bits: 40
name: Cortex-A53
'0xd0c':
16k: true
4k: true
64k: true
aarch32: true
aarch32-el0: false
aarch32-el2: true
address_physical_bits: 48
name: Neoverse-N1
'0xd47':
16k: true
4k: true
64k: true
aarch32: false
aarch32-el0: false
aarch32-el2: false
address_physical_bits: 40
name: Cortex-A710 Question how much of that data will need to be set to "unknown" first. |
We want to have info does core supports: - aarch32 (and at which EL) - 4/16/64KB page size And probably some more. Now all fields are set to "to be set". Related: #56
issue #57 suggests adding PMU information |
Or will it enough to have aarch32 support as "el0/el2/false" instead of 3 fields? '0xc01':
16k: true
4k: true
64k: true
aarch32: "el0"
address_physical_bits: 40
name: SomeCore 1
'0xc03':
16k: true
4k: true
64k: true
aarch32: "el2"
address_physical_bits: 40
name: SomeCore 3
'0xc17':
16k: true
4k: true
64k: true
aarch32: false
address_physical_bits: 40
name: SomeCore Ultra 7
Would make table easier as those info needs to be present in SoC table as well (to not read same data each time). - aarch32: el0
cores:
- implementer: 0x77
part: 0xc03
revision: 0x3
variant: 0x0
- implementer: 0x77
part: 0xc01
revision: 0x3
variant: 0x0
features:
- fp
- asimd
- evtstrm
- aes
- pmull
- sha1
- sha2
- crc32
- cpuid
name: Umba 7
vendor: Exampel |
Having just one field for it makes sense, as the values are mutually exclusive. |
one flag then |
Suggestion for the page sizes: 0x41:
cores:
'0xd03':
page_kb: [4, 16, 64] Or: 0x41:
cores:
'0xd03':
pagesize:
- 4k
- 16k
- 64k |
I like second format. Converted locally but wonder which values to send by default. |
#61 suggests another option to track |
There are three levels of AArch32 support in AArch64 SoC: - EL0-EL3 (all exception levels) - EL0 only - no AArch32 support Some cpu cores do not have info set yet. Partially implements #56
AArch32 has 4 options:
|
Arm cores have now defined several extra information: - URL to Technical Reference Manual - implemented ISA level - Physical and Virtual Address space Related: #56
Some more info added:
|
Mark Brown suggested collecting data from /sys/devices/system/cpu/cpu*/regs/identification/* as well. |
https://marcin.juszkiewicz.com.pl/download/tables/arm-cpu-cores.html lists some data for Arm Ltd cores. |
Arnd Bergmann (@arndb) wrote on https://society.oftrolls.com/@arnd/109387464774037517:
The text was updated successfully, but these errors were encountered: