Skip to content

Commit

Permalink
ARM: HYP/non-sec: remove MIDR check to validate CBAR
Browse files Browse the repository at this point in the history
Having a form of whitelist to check if we know of a CPU core
and and obtain CBAR is a bit silly.

It doesn't scale (how about A12, A17, as well as other I don't know
about?), and is actually a property of the SoC, not the core.

So either it works and everybody is happy, or it doesn't and
the u-boot port to this SoC is providing the real address via
a configuration option.

The result of the above is that this code doesn't need to exist,
is thus forcefully removed.

Signed-off-by: Marc Zyngier <[email protected]>
Acked-by: Ian Campbell <[email protected]>
  • Loading branch information
Marc Zyngier authored and albert-aribaud-u-boot committed Jul 28, 2014
1 parent e771a3d commit 9d195a5
Showing 1 changed file with 0 additions and 17 deletions.
17 changes: 0 additions & 17 deletions arch/arm/cpu/armv7/virt-v7.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,25 +30,8 @@ static unsigned long get_gicd_base_address(void)
#ifdef CONFIG_ARM_GIC_BASE_ADDRESS
return CONFIG_ARM_GIC_BASE_ADDRESS + GIC_DIST_OFFSET;
#else
unsigned midr;
unsigned periphbase;

/* check whether we are an Cortex-A15 or A7.
* The actual HYP switch should work with all CPUs supporting
* the virtualization extension, but we need the GIC address,
* which we know only for sure for those two CPUs.
*/
asm("mrc p15, 0, %0, c0, c0, 0\n" : "=r"(midr));
switch (midr & MIDR_PRIMARY_PART_MASK) {
case MIDR_CORTEX_A9_R0P1:
case MIDR_CORTEX_A15_R0P0:
case MIDR_CORTEX_A7_R0P0:
break;
default:
printf("nonsec: could not determine GIC address.\n");
return -1;
}

/* get the GIC base address from the CBAR register */
asm("mrc p15, 4, %0, c15, c0, 0\n" : "=r" (periphbase));

Expand Down

0 comments on commit 9d195a5

Please sign in to comment.