All of lore.kernel.org
 help / color / mirror / Atom feed
* MPIDR register usage in ARMv8
@ 2014-04-16  5:53 Vijay Kilari
  2014-04-16  9:06 ` Julien Grall
  2014-04-16  9:13 ` Ian Campbell
  0 siblings, 2 replies; 5+ messages in thread
From: Vijay Kilari @ 2014-04-16  5:53 UTC (permalink / raw)
  To: Ian Campbell, Stefano Stabellini, Stefano Stabellini,
	Julien Grall
  Cc: Prasun Kapoor, Vijaya Kumar K, xen-devel

Hi Ian,

I understand that arm64/head.S is using MPIDR definitions
from xen/include/asm-arm/processor.h which is valid for arm32 but
not for ARMv8 as below

/* MPIDR Multiprocessor Affinity Register */
#define _MPIDR_UP           (30)
#define MPIDR_UP            (_AC(1,U) << _MPIDR_UP)
#define _MPIDR_SMP          (31)
#define MPIDR_SMP           (_AC(1,U) << _MPIDR_SMP)
#define MPIDR_AFF0_SHIFT    (0)
#define MPIDR_AFF0_MASK     (_AC(0xff,U) << MPIDR_AFF0_SHIFT)
#define MPIDR_HWID_MASK     _AC(0xffffff,U)
#define MPIDR_INVALID       (~MPIDR_HWID_MASK)

The same is used in arm64/head.S checking for bit 31 (_MPIDR_SMP) which is not
valid in MPIDR_EL1 register definition also MPIDR_HWID_MASK should
be updated for ARMv8

arm64/head.s:

        mrs   x0, mpidr_el1
        tbz   x0, _MPIDR_SMP, 1f     /* Multiprocessor extension not
supported? */
        tbnz  x0, _MPIDR_UP, 1f      /* Uniprocessor system? */

        mov   x13, #(~MPIDR_HWID_MASK)
        bic   x24, x0, x13           /* Mask out flags to get CPU ID */
1:

Do you agree that this requires change?

Regards
Vijay

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-04-16 10:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-16  5:53 MPIDR register usage in ARMv8 Vijay Kilari
2014-04-16  9:06 ` Julien Grall
2014-04-16  9:28   ` Vijay Kilari
2014-04-16 10:07     ` Ian Campbell
2014-04-16  9:13 ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.