[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XenARM] [PATCH] xen/arm: Add CPU ID for Broadcom Brahma-B15



On Wed, 2013-10-16 at 15:57 -0700, marc.ceeeee@xxxxxxxxx wrote:
> From: Marc Carino <marc.ceeeee@xxxxxxxxx>
> 
> Let Xen recognize the Broadcom Brahma-B15 CPU by adding the appropriate
> MIDR mask to the initialization phase. Further, ensure that the console
> output properly reports the CPU manufacturer as "Broadcom Corporation".

Thanks for resending, I saw the original but somehow failed to add it to
my queue of things to look at, sorry!

> 
> Signed-off-by: Marc Carino <marc.ceeeee@xxxxxxxxx>
> ---
>  xen/arch/arm/arm32/proc-v7.S |    8 ++++++++
>  xen/arch/arm/setup.c         |    1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/xen/arch/arm/arm32/proc-v7.S b/xen/arch/arm/arm32/proc-v7.S
> index 6577a89..2c8cb9c 100644
> --- a/xen/arch/arm/arm32/proc-v7.S
> +++ b/xen/arch/arm/arm32/proc-v7.S
> @@ -43,6 +43,14 @@ __v7_ca7mp_proc_info:
>          .long v7_init
>          .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info
>  
> +        .section ".init.proc.info", #alloc, #execinstr
> +        .type __v7_brahma15mp_proc_info, #object
> +__v7_brahma15mp_proc_info:
> +        .long 0x420F00F2             /* Broadcom Brahma-B15 */
> +        .long 0xFF0FFFFF             /* Mask */

This mask includes the revision field (last nibble). Is it intentional
too only support a single revision of this processor?

> +        .long v7_init

v7_init fiddles with the implementation defined ACTLR register in a
Cortex-A15/A7 specific manner. Is the B15 compatible with ARM's Cortex
A15 in this regard?

If not then I think this should be changed to:

ca7mp_init:
ca15mp_init:
        /* Set up the SMP bit in ACTLR */
        mrc   CP32(r0, ACTLR)
        orr   r0, r0, #(ACTLR_V7_SMP) /* enable SMP bit */
        mcr   CP32(r0, ACTLR)
v7_init: /* Generic v7 init */
        mov   pc, lr

and the A15/A7 entries updated to point to the new names.

Perhaps there isn't much point in listing a processor here which doesn't
need any init, but doing so will mean it'll get picked up if we ever add
some init for generic v7, or if we add new hooks etc.

Ian.

> +        .size __v7_brahma15mp_proc_info, . - __v7_brahma15mp_proc_info
> +
>  /*
>   * Local variables:
>   * mode: ASM
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 49f344c..7d6e596 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -61,6 +61,7 @@ static void __init init_idle_domain(void)
>  
>  static const char * __initdata processor_implementers[] = {
>      ['A'] = "ARM Limited",
> +    ['B'] = "Broadcom Corporation",
>      ['D'] = "Digital Equipment Corp",
>      ['M'] = "Motorola, Freescale Semiconductor Inc.",
>      ['Q'] = "Qualcomm Inc.",



_______________________________________________
Xen-arm mailing list
Xen-arm@xxxxxxxxxxxxx
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-arm


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.