|
@@ -255,12 +255,15 @@ void store_cpu_topology(unsigned int cpuid)
|
|
|
/* Multiprocessor system : Multi-threads per core */
|
|
|
cpuid_topo->thread_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
|
|
|
cpuid_topo->core_id = MPIDR_AFFINITY_LEVEL(mpidr, 1);
|
|
|
- cpuid_topo->cluster_id = MPIDR_AFFINITY_LEVEL(mpidr, 2);
|
|
|
+ cpuid_topo->cluster_id = MPIDR_AFFINITY_LEVEL(mpidr, 2) |
|
|
|
+ MPIDR_AFFINITY_LEVEL(mpidr, 3) << 8;
|
|
|
} else {
|
|
|
/* Multiprocessor system : Single-thread per core */
|
|
|
cpuid_topo->thread_id = -1;
|
|
|
cpuid_topo->core_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
|
|
|
- cpuid_topo->cluster_id = MPIDR_AFFINITY_LEVEL(mpidr, 1);
|
|
|
+ cpuid_topo->cluster_id = MPIDR_AFFINITY_LEVEL(mpidr, 1) |
|
|
|
+ MPIDR_AFFINITY_LEVEL(mpidr, 2) << 8 |
|
|
|
+ MPIDR_AFFINITY_LEVEL(mpidr, 3) << 16;
|
|
|
}
|
|
|
|
|
|
pr_debug("CPU%u: cluster %d core %d thread %d mpidr %#016llx\n",
|