Re: [PATCH] MIPS: mips-cm: CM regions are disabled at boot

From: Niklas Svensson
Date: Thu Nov 20 2014 - 08:57:49 EST


On 11/20/2014 01:34 PM, Paul Burton wrote:
> On Thu, Nov 20, 2014 at 01:29:00PM +0100, Niklas Svensson wrote:
>> Each CM_REGION_TARGET is set to disabled at boot,
>
> That part is true...
>
>> so there is no need to disable the matching
>> CM_GCR_REG explicitly.
>
> ...however there is no guarantee that the bootloader, or another kernel,
> or some other piece of code didn't program the registers differently
> before Linux starts. So I believe this patch to be incorrect.


That is the reason for this patch. This will overwrite settings written by the bootloader.

Say if the bootloader sets up an iocu, then these writes will clear those settings.

>
> Thanks,
> Paul
>
>>
>> Signed-off-by: Niklas Svensson <niklass@xxxxxxxx>
>> ---
>> arch/mips/kernel/mips-cm.c | 10 ----------
>> 1 file changed, 10 deletions(-)
>>
>> diff --git a/arch/mips/kernel/mips-cm.c b/arch/mips/kernel/mips-cm.c
>> index f76f7a0..a4bbfd9 100644
>> --- a/arch/mips/kernel/mips-cm.c
>> +++ b/arch/mips/kernel/mips-cm.c
>> @@ -104,16 +104,6 @@ int mips_cm_probe(void)
>> base_reg |= CM_GCR_BASE_CMDEFTGT_MEM;
>> write_gcr_base(base_reg);
>>
>> - /* disable CM regions */
>> - write_gcr_reg0_base(CM_GCR_REGn_BASE_BASEADDR_MSK);
>> - write_gcr_reg0_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK);
>> - write_gcr_reg1_base(CM_GCR_REGn_BASE_BASEADDR_MSK);
>> - write_gcr_reg1_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK);
>> - write_gcr_reg2_base(CM_GCR_REGn_BASE_BASEADDR_MSK);
>> - write_gcr_reg2_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK);
>> - write_gcr_reg3_base(CM_GCR_REGn_BASE_BASEADDR_MSK);
>> - write_gcr_reg3_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK);
>> -
>> /* probe for an L2-only sync region */
>> mips_cm_probe_l2sync();
>>
>> --
>> 2.1.3
>>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/