maybe it sounds too newbie but...
perhaps the "const unsigned int __tlb_flag = __cpu_tlb_flags;"
assignment is different using haret, try to print both and compare it.
PD:is there any way this list can be 'optimized'? i don't receive my own
mails and the reply address is not the list one.
Fisherss wrote:
> I found that kernel stops at this
> function: flush_tlb_all.
> It is in file include/asm-arm/tlbflush.h :
>
> static inline void flush_tlb_all(void)
> {
> const int zero = 0;
> const unsigned int __tlb_flag = __cpu_tlb_flags;
>
> if (tlb_flag(TLB_WB))
> printk("flush 1");
> asm("mcr%? p15, 0, %0, c7, c10, 4" : : "r" (zero));
>
> if (tlb_flag(TLB_V3_FULL))
> printk("flush 2");
> asm("mcr%? p15, 0, %0, c6, c0, 0" : : "r" (zero));
> if (tlb_flag(TLB_V4_U_FULL | TLB_V6_U_FULL))
> printk("flush 3");
> asm("mcr%? p15, 0, %0, c8, c7, 0" : : "r" (zero));
> if (tlb_flag(TLB_V4_D_FULL | TLB_V6_D_FULL))
> printk("flush 4");
> asm("mcr%? p15, 0, %0, c8, c6, 0" : : "r" (zero));
> if (tlb_flag(TLB_V4_I_FULL | TLB_V6_I_FULL))
> printk("flush 5");
> asm("mcr%? p15, 0, %0, c8, c5, 0" : : "r" (zero));
> }
>
> and it actually execute the first part :
> if (tlb_flag(TLB_WB))
> printk("flush 1");
> asm("mcr%? p15, 0, %0, c7, c10, 4" : : "r" (zero));
>
> The same line in haret's source works fine, but it doesn't work here.
> MMU is turned on here.
> I saw someone has the same question in a mailing list, but the
> solution given by another people is "there must be something wrong in
> you memory settings", I really can't understand what he mean.
>
> any idea?
Received on Tue May 31 2005 - 15:01:07 EDT
This archive was generated by hypermail 2.2.0 : Mon Jul 25 2005 - 18:10:03 EDT