soc: Use registered outputs of LRAM port B

This requires special handling of the b_clk_en signal, which can go low
at any point during the read cycle.

Attempts were made to avoid the need for the GatedPassThrough module and
instead set i_CEB and i_CEOUTB to appropriate variations of b_clk_en, 1
and previous(b_clk_en), but nothing tried appeared to work. The
documentation for i_CEOUTB (or rd_out_clk_en_i as the datasheet refers
to it) is unfortunately very lacking. It's possible that disabling it
temporarily while a read is in progress just isn't supported.

BUG=b:243330750
TEST=./scripts/run-dev

Change-Id: I8fdf27ac5c106bac27d2829f78ce6ae337d23101
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/hps-firmware/+/3976828
Tested-by: David Lattimore <dml@chromium.org>
Reviewed-by: Alan Green <avg@chromium.org>
Commit-Queue: David Lattimore <dml@chromium.org>
3 files changed
tree: 96416dcaf86f36296f04f6f9f12467b8ff03a7c4
  1. .vscode/
  2. avr/
  3. bin/
  4. docs/
  5. models/
  6. renode/
  7. rust/
  8. scripts/
  9. soc/
  10. test_data/
  11. third_party/
  12. toolchain/
  13. .clang-format
  14. .gitignore
  15. .gn
  16. BUILD.gn
  17. BUILDCONFIG.gn
  18. DIR_METADATA
  19. environment
  20. LICENSE
  21. OWNERS
  22. PRESUBMIT.cfg
  23. pylintrc
  24. README.md
  25. rust-toolchain.toml
README.md

ChromiumOS Human Presence Sensor

The ChromiumOS Human Presence Sensor is a hardware peripheral which can detect the presence of one or more humans in front of the Chromebook.

This repository contains source code for the firmware which runs on the peripheral.

For more information, refer to the design document (Googlers only).

Documentation