答复: ARM1176 goes wild when MMU on line
rocky
914059751 at qq.com
Mon Oct 26 04:43:45 EDT 2009
Hi,Peter:)
Thanks for you tips!
It appears that ARM1176 implementing an revised ARMv7 CPU ID, though
it's based on an ARMv6 core. I changed ARMv6 cpu mask of cache function in
arch/arm/boot/compressed/head.S, kernel still pops in decompress_kernel. I
really don't know how to debug this, any advise would be really appreciated.
--rocky
-----邮件原件-----
发件人: Peter Pearse [mailto:peter.pearse at arm.com]
发送时间: 2009年10月26日 16:28
收件人: 'rocky'
主题: RE: ARM1176 goes wild when MMU on line
http://www.arm.com/products/CPUs/ARM1176.html
> -----Original Message-----
> From: linux-arm-kernel-bounces at lists.infradead.org
> [mailto:linux-arm-kernel-bounces at lists.infradead.org] On
> Behalf Of rocky
> Sent: 20 October 2009 11:19
> To: 'Laurent Desnogues'
> Cc: 'linux-arm-kernel'
> Subject: 答复: ARM1176 goes wild when MMU on line
>
> 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
>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
More information about the linux-arm-kernel
mailing list