|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 3/6] xen/arm32: Introduce lookup_processor_type
On Wed, 2014-03-05 at 12:46 +0800, Julien Grall wrote:@@ -545,6 +535,45
> #endif /* !CONFIG_EARLY_PRINTK */
I got a reject here because currently this reads /* EARLY_PRINTK */. I
presume this patch is in your queue after your other series but that
they are actually unrelated. On that assumption I intend to resolve the
conflict and commit... Let me know if I shouldn't do that!
Ian.
>
> +/* This provides a C-API version of __lookup_processor_type */
> +GLOBAL(lookup_processor_type)
> + stmfd sp!, {r4, r10, lr}
> + mov r10, #0 /* r10 := offset between virt&phys */
> + bl __lookup_processor_type
> + mov r0, r1
> + ldmfd sp!, {r4, r10, pc}
> +
> +/* Read processor ID register (CP#15, CR0), and Look up in the linker-built
> + * supported processor list. Note that we can't use the absolute addresses
> for
> + * the __proc_info lists since we aren't running with the MMU on (and
> therefore,
> + * we are not in correct address space). We have to calculate the offset.
> + *
> + * r10: offset between virt&phys
> + *
> + * Returns:
> + * r0: CPUID
> + * r1: proc_info pointer
> + * Clobbers r2-r4
> + */
> +__lookup_processor_type:
> + mrc CP32(r0, MIDR) /* r0 := our cpu id */
> + ldr r1, = __proc_info_start
> + add r1, r1, r10 /* r1 := paddr of table (start)
> */
> + ldr r2, = __proc_info_end
> + add r2, r2, r10 /* r2 := paddr of table (end) */
> +1: ldr r3, [r1, #PROCINFO_cpu_mask]
> + and r4, r0, r3 /* r4 := our cpu id with mask */
> + ldr r3, [r1, #PROCINFO_cpu_val] /* r3 := cpu val in current proc
> info */
> + teq r4, r3
> + beq 2f /* Match => exit, or try next
> proc info */
> + add r1, r1, #PROCINFO_sizeof
> + cmp r1, r2
> + blo 1b
> + /* We failed to find the proc_info, return NULL */
> + mov r1, #0
> +2:
> + mov pc, lr
> +
> /*
> * Local variables:
> * mode: ASM
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |