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?