summaryrefslogtreecommitdiff
path: root/docs/zephyr_poc_device_bringup.md
blob: e61ca57e2c8fc1ddd999233502d6be1d6a72bd20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Zephyr Proof-of-Concept-Device Bringup

It may be useful to build a Zephyr OS-based EC for a device which
already has a CrOS EC device build, for the purposes of demonstrating
the feasibility of Zephyr OS.

This document is a work-in-progress list of tricks & tools that may be
useful to you.

## Initial Bringup

Initially, you'll want to get a basic UART functioning with nothing
but a shell and some basic console commands.

An example CL to do this for Lazor can be found
[here](https://crrev.com/c/2749765).

## Bringing up GPIOs

After you have UART functioning, GPIOs can be an easy target to start
unblocking further features.

The resultant CL for Lazor can be found [here](https://crrev.com/c/2749768).

## Bring up Host Commands

Set `CONFIG_PLATFORM_EC_HOSTCMD=y` and enable the appropriate
host-command interface for your platform (e.g., eSPI).

An example CL for Lazor can be found [here](https://crrev.com/c/2749428).

As long as you get this compiling that should be enough to move to the
next step.  Further testing of the host command layer will require
power sequencing up and going.

## Enabling some simple GPIO-based buttons and switches

Next, you can:

* [Add the lid switch](https://crrev.com/c/2749768)
* [Add the power button](https://crrev.com/c/2749426)
* [Add AC presence detection](https://crrev.com/c/2749428)

## Power Sequencing

TODO(jrosenth): add steps on enabling power sequencing and expand this
document.