Page MenuHomeFreeBSD

[mips/broadcom] Implement early boot hardware probing and generic platform_reset() support.
ClosedPublic

Authored by landonf on Aug 16 2016, 10:13 PM.

Details

Summary

This adds support for performing platform_reset() on all supported
devices, using early boot enumeration of chipc capabilities and
available cores.

Changes:

  • Extended platform_reset() to support PMU, PMU+AOB, and non-PMU devices.
  • Added a bcm_platform structure for tracking chipc/pmu/cfe platform data.
  • Extended the BCMA EROM API to support early boot lookup of core info (including port/region mappings).
  • Added Broadcom-specific MIPS CP0 register definitions used by BCM4785-specific reset handling.

Depends on D7498

Test Plan
  • Verified no regressions in reset handling on Asus RT-N16 and Netgear WGT634U.
  • Confirmed no regressions in bcma(4) bus enumeration on all supported SoC and WiFi chipsets.
  • Verified that reset now works correctly on Asus RT-N53, resolving the issue described in D6988.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

landonf retitled this revision from to [mips/broadcom] Implement early boot hardware probing and generic platform_reset() support..
landonf updated this object.
landonf edited the test plan for this revision. (Show Details)
landonf added reviewers: adrian, mizhka.
mizhka edited edge metadata.
This revision is now accepted and ready to land.Aug 22 2016, 9:39 AM
adrian edited edge metadata.
This revision was automatically updated to reflect the committed changes.

If you both think it's fine, then I'm totally all for it going in :)