Page MenuHomeFreeBSD

[BHND] (fix-regression) reboot doesn't work: PMU watchdog must be triggered on shutdown
AbandonedPublic

Authored by mizhka_gmail.com on Jun 27 2016, 5:37 PM.

Details

Reviewers
landonf
adrian
Summary

Hi,

The command "reboot" hangs on Asus RT-N53. It worked before, so fix is simple: watchdog must be triggered always on shutdown.

Test Plan

TC: run "reboot"
AR: hang
ER: success

Tested on BCM5358 (ASUS RT-N53)

Diff Detail

Repository
rS FreeBSD src repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

mizhka_gmail.com retitled this revision from to [BHND] (fix-regression) reboot doesn't work: PMU watchdog must be triggered on shutdown.Jun 27 2016, 5:37 PM
mizhka_gmail.com updated this object.
mizhka_gmail.com edited the test plan for this revision. (Show Details)
mizhka_gmail.com added reviewers: landonf, adrian.
mizhka_gmail.com set the repository for this revision to rS FreeBSD src repository.
mizhka_gmail.com updated this revision to Diff 17931.
landonf edited edge metadata.Jun 28 2016, 1:31 AM

The command "reboot" hangs on Asus RT-N53. It worked before, so fix is simple: watchdog must be triggered always on shutdown.

This will break on non-PMU-equippped devices (e.g. WGT634U), and more recent Broadcom devices that map the PMU register block via a dedicated core instead of ChipCommon; if we can't use CFE, we have to look at the ChipCommon core revision + capability flags + device table.

TC: run "reboot"
AR: hang

If you break to debugger (sysctl debug.kdb.panic=1) and issue a 'reset' command, the same code path succeeds; any idea why CFE is failing here?

The command "reboot" hangs on Asus RT-N53. It worked before, so fix is simple: watchdog must be triggered always on shutdown.

This will break on non-PMU-equippped devices (e.g. WGT634U), and more recent Broadcom devices that map the PMU register block via a dedicated core instead of ChipCommon; if we can't use CFE, we have to look at the ChipCommon core revision + capability flags + device table.

Do you mean "throw exception" under "break"?

TC: run "reboot"
AR: hang

If you break to debugger (sysctl debug.kdb.panic=1) and issue a 'reset' command, the same code path succeeds; any idea why CFE is failing here?

Because CFE is unreliable thing :) CFE is generic word, too many builds, versions, hacks and so on. The less used CFE features, the less pain :)

I'm agree with switch-case table, but I'll check ddb reset path too.

With D7539 committed, is it safe to close this?