Re: [PATCH] MIPS: BCM47XX: make reboot more relaiable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/30/2014 08:06 PM, Rafał Miłecki wrote:
> On 28 July 2014 23:53, Hauke Mehrtens <hauke@xxxxxxxxxx> wrote:
>> The reboot on the BCM47XX SoCs is done, by setting the watchdog counter
>> to 1 and let it trigger a reboot, when it reaches 0. Some devices with
>> a BCM4705/BCM4785 SoC do not reboot when the counter is set to 1 and
>> decreased to 0 by the hardware. It looks like it works more reliable
>> when we set it to 3. As far as I understand the hardware, this should
>> not make any difference, but I do not have access to any documentation
>> for this SoC.
>> It is still not 100% reliable.
> 
> Did you see code in hndmips.c of Broadcom SDK? Maybe we need this
> magic ASM code they have it there?
> 
> if (CHIPID(sih->chip) == BCM4785_CHIP_ID)
>     MTC0(C0_BROADCOM, 4, (1 << 22));
> si_watchdog(sih, 1);
> if (CHIPID(sih->chip) == BCM4785_CHIP_ID) {
>     __asm__ __volatile__(
>         ".set\tmips3\n\t"
>         "sync\n\t"
>         "wait\n\t"
>         ".set\tmips0");
> }
> while (1);
> 
> Maybe it'll work better and more reliable?
> 
This looks interesting, I haven't seen this.

Please drop this patch for now, I will create a new one

Hauke


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux