From 6a184d5019f0b45fe692da09a14e9ce7c853d68c Mon Sep 17 00:00:00 2001 From: "Hu, Hebo" Date: Fri, 8 Mar 2019 15:34:21 +0800 Subject: ish/ish5: implement AON low power management framework AON PM framework including: 1: AON task skeleton 2: task switching between main FW and AON task 3: 'idlestats' console command for D0ix statistic information 4: D0ix entrance in idle task BUG=b:122364080 BRANCH=none TEST=tested on arcada Change-Id: Iefa9e067892d5c42d9f0c795275fe88e5a36115b Signed-off-by: Hu, Hebo Reviewed-on: https://chromium-review.googlesource.com/1510518 Commit-Ready: Rushikesh S Kadam Commit-Ready: Hebo Hu Tested-by: Jett Rink Reviewed-by: Jett Rink Reviewed-by: Hebo Hu --- chip/ish/aontaskfw/ish_aon_share.h | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 chip/ish/aontaskfw/ish_aon_share.h (limited to 'chip/ish/aontaskfw/ish_aon_share.h') diff --git a/chip/ish/aontaskfw/ish_aon_share.h b/chip/ish/aontaskfw/ish_aon_share.h new file mode 100644 index 0000000000..3a5c1bd06b --- /dev/null +++ b/chip/ish/aontaskfw/ish_aon_share.h @@ -0,0 +1,42 @@ +/* Copyright 2019 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef __CROS_EC_ISH_AON_SHARE_H +#define __CROS_EC_ISH_AON_SHARE_H + +#include "ia_structs.h" + +/* magic ID for valid aontask image sanity check */ +#define AON_MAGIC_ID 0x544E4F41 /*"AONT"*/ + +/* aontask error code */ +#define AON_SUCCESS 0 +#define AON_ERROR_NOT_SUPPORT_POWER_MODE 1 +#define AON_ERROR_DMA_FAILED 2 + + +/* shared data structure between main FW and aontask */ +struct ish_aon_share { + /* magic ID */ + uint32_t magic_id; + /* last error */ + /* error counter */ + uint32_t error_count; + /* last error */ + int last_error; + /* aontask's TSS segment entry */ + struct tss_entry *aon_tss; + /* aontask's LDT start address */ + ldt_entry *aon_ldt; + /* aontask's LDT's limit size */ + uint32_t aon_ldt_size; + /* current power state, see chip/ish/power_mgt.h */ + int pm_state; + /* for store/restore main FW's IDT */ + struct idt_header main_fw_idt_hdr; + +} __packed; + +#endif /* __CROS_EC_ISH_AON_SHARE_H */ -- cgit v1.2.1