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

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

 



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?


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

  Powered by Linux