[PATCH 1/1] ARM: Add API to detect SCU base address from CP15
Hiroshi Doyu
hdoyu at nvidia.com
Fri Jan 18 09:29:58 EST 2013
On Fri, 18 Jan 2013 13:54:34 +0100
Santosh Shilimkar <santosh.shilimkar at ti.com> wrote:
> On Friday 18 January 2013 04:29 PM, Hiroshi Doyu wrote:
> > Add API to detect SCU base address from CP15.
> >
> > Signed-off-by: Hiroshi Doyu <hdoyu at nvidia.com>
> > ---
> > NOTE:
> > This wasn't delivered to linux-arm-kernel at lists.infradead.org, resending....
> >
> > For usage: http://patchwork.ozlabs.org/patch/212013/
> > ---
> > arch/arm/include/asm/smp_scu.h | 17 +++++++++++++++++
> > 1 file changed, 17 insertions(+)
> >
> > diff --git a/arch/arm/include/asm/smp_scu.h b/arch/arm/include/asm/smp_scu.h
> > index 4eb6d00..f619eef 100644
> > --- a/arch/arm/include/asm/smp_scu.h
> > +++ b/arch/arm/include/asm/smp_scu.h
> > @@ -6,6 +6,23 @@
> > #define SCU_PM_POWEROFF 3
> >
> > #ifndef __ASSEMBLER__
> > +
> > +#include <asm/cputype.h>
> > +
> > +static inline phys_addr_t scu_get_base(void)
> > +{
> > + phys_addr_t pa;
> > + unsigned long part_number = read_cpuid_part_number();
> > +
> > + switch (part_number) {
> > + case ARM_CPU_PART_CORTEX_A9:
> > + /* Get SCU physical base */
> > + asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (pa));
> > + return pa;
> > + default:
> > + return 0;
> > + }
> > +}
> You may not need the switch case considering peripheral SCU is
> specific to A9 SOCs. Would just if like below is better ?
>
> phys_addr_t pa = 0;
>
> if (ARM_CPU_PART_CORTEX_A9 == read_cpuid_part_number())
> asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (pa));
> return pa;
I just considered the case if there will be another A?, which is SCU
detectable, added later. If no possibility, yours would be enough.
More information about the linux-arm-kernel
mailing list