答复: ARM1176 goes wild when MMU on line

rocky 914059751 at qq.com
Tue Oct 20 06:18:59 EDT 2009


ARM1176 is definitely an ARMv7 VMSA! Its CPUID is:0x410FB764, check the
following code to see how does kernel code decide which architecture
operation procedure to use.

BTW: S3C6410 is also based on ARM1176 core, it uses ARMv7 cache calls as
well.

--------------- Arch/arm/boot/compressed/head.S -------------------
/*
 * Here follow the relocatable cache support functions for the
 * various processors.  This is a generic hook for locating an
 * entry and jumping to an instruction at the specified offset
 * from the start of the block.  Please note this is all position
 * independent code.
 *
 *  r1  = corrupted
 *  r2  = corrupted
 *  r3  = block offset
 *  r6  = corrupted
 *  r12 = corrupted
 */

call_cache_fn:	adr	r12, proc_types
#ifdef CONFIG_CPU_CP15
		mrc	p15, 0, r6, c0, c0	@ get processor ID
#else
		ldr	r6, =CONFIG_PROCESSOR_ID
#endif
1:		ldr	r1, [r12, #0]		@ get value
		ldr	r2, [r12, #4]		@ get mask
		eor	r1, r1, r6		@ (real ^ match)
		tst	r1, r2			@       & mask
		addeq	pc, r12, r3		@ call cache function
		add	r12, r12, #4*5
		b	1b
proc_types
		.word	0x000f0000		@ new CPU Id
		.word	0x000f0000
		b	__armv7_mmu_cache_on
		b	__armv7_mmu_cache_off
		b	__armv7_mmu_cache_flush

-----邮件原件-----
发件人: Laurent Desnogues [mailto:laurent.desnogues at gmail.com] 
发送时间: 2009年10月20日 18:00
收件人: 胡杨树
抄送: linux-arm-kernel
主题: Re: ARM1176 goes wild when MMU on line

2009/10/20 胡杨树 <914059751 at qq.com>:
> ARM1176 has ARMv7 VMSA. ?Am I missing something obvious?

Is that a typo? ARM1176 is an ARMv6 chip, not an ARMv7 one.


Laurent





More information about the linux-arm-kernel mailing list