apex-monitor: add apex-monitor

Add apex chip status monitor to monitor the status and thermal info of
apex chips. Reset chip when needed.

patchset 4: Added a wrapper for the i2c interface of the apex chips. Added
function to init thermal related registers and read chip temperature.

patchset 5: Add SetBit(), ClearBit() function in I2C interface class.

patchset 6: Add ResetChip() and PowerCycleChip() function.

patchset 7: Add ApexManager class to encapsulate chip related
functionality and let ApexMonitor to control monitoring logic.

patchset 8: Add Apex boot and power status check funtion. Also add
function for finding out proper I2C adapter number to use.

patchset 9: Update upstart script to run apex-monitor within minijail.

patchset 10: Add unittest for ApexManager class. Create a virtual class
BaseI2cInterface to FakeI2cInterface to support unittest.

patchset 11: Get rid of 'goto'. Add fix for some corner cases.

patchset 12: Break down the MonitorThread function. Add test for
MimoMonitor class.

patchset 15: Add a few test items in mimo_monitor_test.

patchset 16: Wrap brillo::Post(Delayed)Task to clear up the code a
little bit.

BUG=b:78140759
TEST=build and run on Bleemo. Unittests passed.

Change-Id: I88e88f83704f313b1d6ba86c55af5ac166b3c644
Reviewed-on: https://chromium-review.googlesource.com/1089464
Commit-Ready: Zhongze Hu <frankhu@google.com>
Tested-by: Zhongze Hu <frankhu@google.com>
Reviewed-by: Jarkko Oikarinen <jtho@google.com>
15 files changed
tree: 4674d903b3fb2e2d10983ff339c948075527bde2
  1. apex-monitor/
  2. camera-monitor/
  3. conf/
  4. init/
  5. mimo-monitor/
  6. cfm-device-monitor.gyp
  7. LICENSE
  8. OWNERS
  9. PRESUBMIT.cfg
  10. README.md
README.md

CFM Device Monitor

Source code for CFM peripheral monitors which check the status of CFM devices and guarantee their liveness.