All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gwendal Grignou <gwendal@chromium.org>
To: enric.balletbo@collabora.com, bleung@chromium.org,
	groeck@chromium.org, lee.jones@linaro.org, jic23@kernel.org,
	broonie@kernel.org, cychiang@chromium.org, tiwai@suse.com,
	fabien.lahoudere@collabora.com
Cc: linux-iio@vger.kernel.org, alsa-devel@alsa-project.org,
	linux-kernel@vger.kernel.org,
	Gwendal Grignou <gwendal@chromium.org>
Subject: [RESEND PATCH v3 29/30] mfd: cros_ec: Add Management API entry points
Date: Mon,  3 Jun 2019 11:34:00 -0700	[thread overview]
Message-ID: <20190603183401.151408-30-gwendal@chromium.org> (raw)
In-Reply-To: <20190603183401.151408-1-gwendal@chromium.org>

Add commands for test and management.
Add command space for future development.

Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Acked-by: Benson Leung <bleung@chromium.org>
Reviewed-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
 include/linux/mfd/cros_ec_commands.h | 113 +++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)

diff --git a/include/linux/mfd/cros_ec_commands.h b/include/linux/mfd/cros_ec_commands.h
index 860a76274334..fc8babce1576 100644
--- a/include/linux/mfd/cros_ec_commands.h
+++ b/include/linux/mfd/cros_ec_commands.h
@@ -5176,6 +5176,119 @@ struct ec_params_set_cbi {
 	uint8_t data[];		/* For string and raw data */
 } __ec_align1;
 
+/*
+ * Information about resets of the AP by the EC and the EC's own uptime.
+ */
+#define EC_CMD_GET_UPTIME_INFO 0x0121
+
+struct ec_response_uptime_info {
+	/*
+	 * Number of milliseconds since the last EC boot. Sysjump resets
+	 * typically do not restart the EC's time_since_boot epoch.
+	 *
+	 * WARNING: The EC's sense of time is much less accurate than the AP's
+	 * sense of time, in both phase and frequency.  This timebase is similar
+	 * to CLOCK_MONOTONIC_RAW, but with 1% or more frequency error.
+	 */
+	uint32_t time_since_ec_boot_ms;
+
+	/*
+	 * Number of times the AP was reset by the EC since the last EC boot.
+	 * Note that the AP may be held in reset by the EC during the initial
+	 * boot sequence, such that the very first AP boot may count as more
+	 * than one here.
+	 */
+	uint32_t ap_resets_since_ec_boot;
+
+	/*
+	 * The set of flags which describe the EC's most recent reset.  See
+	 * include/system.h RESET_FLAG_* for details.
+	 */
+	uint32_t ec_reset_flags;
+
+	/* Empty log entries have both the cause and timestamp set to zero. */
+	struct ap_reset_log_entry {
+		/*
+		 * See include/chipset.h: enum chipset_{reset,shutdown}_reason
+		 * for details.
+		 */
+		uint16_t reset_cause;
+
+		/* Reserved for protocol growth. */
+		uint16_t reserved;
+
+		/*
+		 * The time of the reset's assertion, in milliseconds since the
+		 * last EC boot, in the same epoch as time_since_ec_boot_ms.
+		 * Set to zero if the log entry is empty.
+		 */
+		uint32_t reset_time_ms;
+	} recent_ap_reset[4];
+} __ec_align4;
+
+/*
+ * Add entropy to the device secret (stored in the rollback region).
+ *
+ * Depending on the chip, the operation may take a long time (e.g. to erase
+ * flash), so the commands are asynchronous.
+ */
+#define EC_CMD_ADD_ENTROPY	0x0122
+
+enum add_entropy_action {
+	/* Add entropy to the current secret. */
+	ADD_ENTROPY_ASYNC = 0,
+	/*
+	 * Add entropy, and also make sure that the previous secret is erased.
+	 * (this can be implemented by adding entropy multiple times until
+	 * all rolback blocks have been overwritten).
+	 */
+	ADD_ENTROPY_RESET_ASYNC = 1,
+	/* Read back result from the previous operation. */
+	ADD_ENTROPY_GET_RESULT = 2,
+};
+
+struct ec_params_rollback_add_entropy {
+	uint8_t action;
+} __ec_align1;
+
+/*
+ * Perform a single read of a given ADC channel.
+ */
+#define EC_CMD_ADC_READ		0x0123
+
+struct ec_params_adc_read {
+	uint8_t adc_channel;
+} __ec_align1;
+
+struct ec_response_adc_read {
+	int32_t adc_value;
+} __ec_align4;
+
+/*
+ * Read back rollback info
+ */
+#define EC_CMD_ROLLBACK_INFO		0x0124
+
+struct ec_response_rollback_info {
+	int32_t id; /* Incrementing number to indicate which region to use. */
+	int32_t rollback_min_version;
+	int32_t rw_rollback_version;
+} __ec_align4;
+
+
+/* Issue AP reset */
+#define EC_CMD_AP_RESET 0x0125
+
+/*****************************************************************************/
+/* The command range 0x200-0x2FF is reserved for Rotor. */
+
+/*****************************************************************************/
+/*
+ * Reserve a range of host commands for the CR51 firmware.
+ */
+#define EC_CMD_CR51_BASE 0x0300
+#define EC_CMD_CR51_LAST 0x03FF
+
 /*****************************************************************************/
 /* Fingerprint MCU commands: range 0x0400-0x040x */
 
-- 
2.21.0.1020.gf2820cf01a-goog


  parent reply	other threads:[~2019-06-03 18:35 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-03 18:33 [RESEND PATCH v3 00/30] Update cros_ec_commands.h Gwendal Grignou
2019-06-03 18:33 ` Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 01/30] mfd: cros_ec: Update license term Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 02/30] mfd: cros_ec: Zero BUILD_ macro Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 03/30] mfd: cros_ec: set comments properly Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 04/30] mfd: cros_ec: add ec_align macros Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 05/30] mfd: cros_ec: Define commands as 4-digit UPPER CASE hex values Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 06/30] mfd: cros_ec: use BIT macro Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 07/30] mfd: cros_ec: Update ACPI interface definition Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 08/30] mfd: cros_ec: move HDMI CEC API definition Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 09/30] mfd: cros_ec: Remove zero-size structs Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 10/30] mfd: cros_ec: Add Flash V2 commands API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 11/30] mfd: cros_ec: Add PWM_SET_DUTY API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 12/30] mfd: cros_ec: Add lightbar v2 API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 13/30] mfd: cros_ec: Expand hash API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 14/30] mfd: cros_ec: Add EC transport protocol v4 Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 15/30] mfd: cros_ec: Complete MEMS sensor API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 16/30] mfd: cros_ec: Fix event processing API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 17/30] mfd: cros_ec: Add fingerprint API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 18/30] mfd: cros_ec: Fix temperature API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 19/30] mfd: cros_ec: Complete Power and USB PD API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 20/30] mfd: cros_ec: Add API for keyboard testing Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 21/30] mfd: cros_ec: Add Hibernate API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 22/30] mfd: cros_ec: Add Smart Battery Firmware update API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 23/30] mfd: cros_ec: Add I2C passthru protection API Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 24/30] mfd: cros_ec: Add API for EC-EC communication Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 25/30] mfd: cros_ec: Add API for Touchpad support Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 26/30] mfd: cros_ec: Add API for Fingerprint support Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 27/30] mfd: cros_ec: Add API for rwsig Gwendal Grignou
2019-06-03 18:33 ` [RESEND PATCH v3 28/30] mfd: cros_ec: Add SKU ID and Secure storage API Gwendal Grignou
2019-06-03 18:34 ` Gwendal Grignou [this message]
2019-06-03 18:34 ` [RESEND PATCH v3 30/30] mfd: cros_ec: Update I2S API Gwendal Grignou
2019-06-03 19:42 ` [RESEND PATCH v3 00/30] Update cros_ec_commands.h Mark Brown
2019-06-04  5:47   ` Lee Jones
2019-06-04  5:59 ` Lee Jones
2019-06-06 11:25   ` [alsa-devel] " Enric Balletbo Serra
2019-06-10  8:20     ` [GIT PULL] Immutable branch between MFD and Cros due for the v5.3 merge window Lee Jones
2019-06-10  8:45       ` Enric Balletbo Serra
2019-06-10  8:57         ` Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190603183401.151408-30-gwendal@chromium.org \
    --to=gwendal@chromium.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bleung@chromium.org \
    --cc=broonie@kernel.org \
    --cc=cychiang@chromium.org \
    --cc=enric.balletbo@collabora.com \
    --cc=fabien.lahoudere@collabora.com \
    --cc=groeck@chromium.org \
    --cc=jic23@kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.