[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 |