Gandham, Raghu wrote:
Just make sure it works, first! ;o) I'm thousands of miles away from my build/test systems.-----Original Message----- From: Kevin D. Kissell [mailto:kevink@xxxxxxxxxxxxx] Sent: Wednesday, July 01, 2009 9:02 PM To: Gandham, Raghu Cc: linux-mips@xxxxxxxxxxxxxx; Dearman, Chris Subject: Re: [PATCH 15/15] Do not rely on the initial state of TC/VPE bindings when doing cross VPE writes Note that, regardless of the reset state, smtc_configure_tlb() should have at least temporarily bound TC 1 to VPE1, which may be why this never seemed to be a problem on the 34K. If one wants to support designs with more than 2 VPEs, then this is probably one of the things that needs to be fixed. That having been said, rather than adding a usually-redundant write_vpe_c0_vpeconf0() in that clause, wouldn't itbecleaner to just move the MVP setting from the top of the loop to the point in the loop just after the TCs have been bound to the VPE in question, i.e., 454 if (slop) { 455 if (tc != 0) { 456 smtc_tc_setup(vpe,tc, cpu); 457 cpu++; 458 } 459 printk(" %d", tc); 460 tc++; 461 slop--; 462 } write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_MVP); 463 if (vpe != 0) { 464 /* 465 * Clear any stale software interruptsfromVPE's Cause 466 */ This should definitely be OK for a 34K, because it's being executed by TC0 in VPE0 and the reset state of VPE0 has MVP set. If it weren't, smtc_configure_tlb() would have failed. Regards, Kevin K.I will resend this patch with your suggestion. Thanks, Raghu Regards, Kevn K. |