tree: 23c4498bdddae27be28554735f1bcfe222f7c33c [path history] [tgz]
  1. dbus/
  2. docs/
  3. init/
  4. udev/
  5. COMMIT-QUEUE.ini
  6. curve25519.c
  7. curve25519.h
  8. curve25519_unittest.cc
  9. dbus_wrapper.cc
  10. dbus_wrapper.h
  11. fmap_utils.cc
  12. fmap_utils.h
  13. hammer_updater.cc
  14. hammer_updater.h
  15. hammer_updater_unittest.cc
  16. hammerd.gyp
  17. hammerd_api.cc
  18. hammerd_api.h
  19. hammerd_api.py
  20. hammerd_api_demo.py
  21. main.cc
  22. mock_dbus_wrapper.h
  23. mock_fmap_utils.h
  24. mock_pair_utils.h
  25. mock_update_fw.h
  26. mock_usb_utils.h
  27. OWNERS
  28. pack_firmware.sh
  29. pair_utils.cc
  30. pair_utils.h
  31. pair_utils_unittest.cc
  32. process_lock.cc
  33. process_lock.h
  34. README.md
  35. setup.py
  36. uma_metric_names.h
  37. update_fw.cc
  38. update_fw.h
  39. update_fw_unittest.cc
  40. usb_utils.cc
  41. usb_utils.h
hammerd/README.md

hammerd: A daemon to update hammer

Summary

hammer is the base of detachable, connected via USB over pogo pins. hammer runs its own upgradable firmware (base EC, running EC codebase on STM32F072), is attached to a touchpad (with its own upgradable FW), and is able to pair with the detachable.

We need a userspace daemon, running on the AP, that does the following things related to hammer:

  • Waits for a base to be attached on detachable's pogo pins port, and then performs the following tasks as required.
    • Base EC FW update
    • Base touchpad FW update
    • Base pairing
    • Tell base to increment its rollback counter (if necessary)
    • Interaction with Chrome:
      • Shows notification during update (EC+touchpad)
      • Shows notification that a new base is connected (pairing)