cros_ec_python.constants.MEMMAP

  1from .COMMON import BIT
  2from typing import Final
  3
  4EC_MEMMAP_SIZE         : Final = 255 # ACPI IO buffer max is 255 bytes
  5EC_MEMMAP_TEXT_MAX     : Final = 8   # Size of a string in the memory map
  6
  7# The offset address of each type of data in mapped memory.
  8EC_MEMMAP_TEMP_SENSOR      : Final = 0x00 # Temp sensors 0x00 - 0x0f
  9EC_MEMMAP_FAN              : Final = 0x10 # Fan speeds 0x10 - 0x17
 10EC_MEMMAP_TEMP_SENSOR_B    : Final = 0x18 # More temp sensors 0x18 - 0x1f
 11EC_MEMMAP_ID               : Final = 0x20 # 0x20 == 'E', 0x21 == 'C'
 12EC_MEMMAP_ID_VERSION       : Final = 0x22 # Version of data in 0x20 - 0x2f
 13EC_MEMMAP_THERMAL_VERSION  : Final = 0x23 # Version of data in 0x00 - 0x1f
 14EC_MEMMAP_BATTERY_VERSION  : Final = 0x24 # Version of data in 0x40 - 0x7f
 15EC_MEMMAP_SWITCHES_VERSION : Final = 0x25 # Version of data in 0x30 - 0x33
 16EC_MEMMAP_EVENTS_VERSION   : Final = 0x26 # Version of data in 0x34 - 0x3f
 17EC_MEMMAP_HOST_CMD_FLAGS   : Final = 0x27 # Host cmd interface flags (8 bits)
 18# Unused 0x28 - 0x2f
 19EC_MEMMAP_SWITCHES         : Final = 0x30	# 8 bits
 20# Unused 0x31 - 0x33
 21EC_MEMMAP_HOST_EVENTS      : Final = 0x34 # 64 bits
 22# Battery values are all 32 bits, unless otherwise noted.
 23EC_MEMMAP_BATT_VOLT        : Final = 0x40 # Battery Present Voltage
 24EC_MEMMAP_BATT_RATE        : Final = 0x44 # Battery Present Rate
 25EC_MEMMAP_BATT_CAP         : Final = 0x48 # Battery Remaining Capacity
 26EC_MEMMAP_BATT_FLAG        : Final = 0x4c # Battery State, see below (8-bit)
 27EC_MEMMAP_BATT_COUNT       : Final = 0x4d # Battery Count (8-bit)
 28EC_MEMMAP_BATT_INDEX       : Final = 0x4e # Current Battery Data Index (8-bit)
 29# Unused 0x4f
 30EC_MEMMAP_BATT_DCAP        : Final = 0x50 # Battery Design Capacity
 31EC_MEMMAP_BATT_DVLT        : Final = 0x54 # Battery Design Voltage
 32EC_MEMMAP_BATT_LFCC        : Final = 0x58 # Battery Last Full Charge Capacity
 33EC_MEMMAP_BATT_CCNT        : Final = 0x5c # Battery Cycle Count
 34# Strings are all 8 bytes (EC_MEMMAP_TEXT_MAX)
 35EC_MEMMAP_BATT_MFGR        : Final = 0x60 # Battery Manufacturer String
 36EC_MEMMAP_BATT_MODEL       : Final = 0x68 # Battery Model Number String
 37EC_MEMMAP_BATT_SERIAL      : Final = 0x70 # Battery Serial Number String
 38EC_MEMMAP_BATT_TYPE        : Final = 0x78 # Battery Type String
 39EC_MEMMAP_ALS              : Final = 0x80 # ALS readings in lux (2 X 16 bits)
 40# Unused 0x84 - 0x8f
 41EC_MEMMAP_ACC_STATUS       : Final = 0x90 # Accelerometer status (8 bits )
 42# Unused 0x91
 43EC_MEMMAP_ACC_DATA         : Final = 0x92 # Accelerometers data 0x92 - 0x9f
 44# 0x92: Lid Angle if available, LID_ANGLE_UNRELIABLE otherwise
 45# 0x94 - 0x99: 1st Accelerometer
 46# 0x9a - 0x9f: 2nd Accelerometer
 47EC_MEMMAP_GYRO_DATA        : Final = 0xa0 # Gyroscope data 0xa0 - 0xa5
 48# Unused 0xa6 - 0xdf
 49
 50
 51# ACPI is unable to access memory mapped data at or above this offset due to
 52# limitations of the ACPI protocol. Do not place data in the range 0xe0 - 0xfe
 53# which might be needed by ACPI.
 54
 55EC_MEMMAP_NO_ACPI : Final = 0xe0
 56
 57# Define the format of the accelerometer mapped memory status byte.
 58EC_MEMMAP_ACC_STATUS_SAMPLE_ID_MASK  : Final = 0x0f
 59EC_MEMMAP_ACC_STATUS_BUSY_BIT        : Final = BIT(4)
 60EC_MEMMAP_ACC_STATUS_PRESENCE_BIT    : Final = BIT(7)
 61
 62# Number of temp sensors at EC_MEMMAP_TEMP_SENSOR
 63EC_TEMP_SENSOR_ENTRIES     : Final = 16
 64
 65# Number of temp sensors at EC_MEMMAP_TEMP_SENSOR_B.
 66#
 67# Valid only if EC_MEMMAP_THERMAL_VERSION returns >= 2.
 68
 69EC_TEMP_SENSOR_B_ENTRIES      : Final = 8
 70
 71# Special values for mapped temperature sensors
 72EC_TEMP_SENSOR_NOT_PRESENT    : Final = 0xff
 73EC_TEMP_SENSOR_ERROR          : Final = 0xfe
 74EC_TEMP_SENSOR_NOT_POWERED    : Final = 0xfd
 75EC_TEMP_SENSOR_NOT_CALIBRATED : Final = 0xfc
 76
 77# The offset of temperature value stored in mapped memory.  This allows
 78# reporting a temperature range of 200K to 454K = -73C to 181C.
 79
 80EC_TEMP_SENSOR_OFFSET      : Final = 200
 81
 82
 83# Number of ALS readings at EC_MEMMAP_ALS
 84
 85EC_ALS_ENTRIES             : Final = 2
 86
 87
 88# The default value a temperature sensor will return when it is present but
 89# has not been read this boot.  This is a reasonable number to avoid
 90# triggering alarms on the host.
 91
 92EC_TEMP_SENSOR_DEFAULT     : Final = (296 - EC_TEMP_SENSOR_OFFSET)
 93
 94EC_FAN_SPEED_ENTRIES       : Final = 4       # Number of fans at EC_MEMMAP_FAN
 95EC_FAN_SPEED_NOT_PRESENT   : Final = 0xffff  # Entry not present
 96EC_FAN_SPEED_STALLED       : Final = 0xfffe  # Fan stalled
 97
 98# Battery bit flags at EC_MEMMAP_BATT_FLAG.
 99EC_BATT_FLAG_AC_PRESENT   : Final = 0x01
100EC_BATT_FLAG_BATT_PRESENT : Final = 0x02
101EC_BATT_FLAG_DISCHARGING  : Final = 0x04
102EC_BATT_FLAG_CHARGING     : Final = 0x08
103EC_BATT_FLAG_LEVEL_CRITICAL : Final = 0x10
104# Set if some of the static/dynamic data is invalid (or outdated).
105EC_BATT_FLAG_INVALID_DATA : Final = 0x20
106
107# Switch flags at EC_MEMMAP_SWITCHES
108EC_SWITCH_LID_OPEN               : Final = 0x01
109EC_SWITCH_POWER_BUTTON_PRESSED   : Final = 0x02
110EC_SWITCH_WRITE_PROTECT_DISABLED : Final = 0x04
111# Was recovery requested via keyboard; now unused.
112EC_SWITCH_IGNORE1		 : Final = 0x08
113# Recovery requested via dedicated signal (from servo board)
114EC_SWITCH_DEDICATED_RECOVERY     : Final = 0x10
115# Was fake developer mode switch; now unused.  Remove in next refactor.
116EC_SWITCH_IGNORE0                : Final = 0x20
117
118# Host command interface flags
119# Host command interface supports LPC args (LPC interface only)
120EC_HOST_CMD_FLAG_LPC_ARGS_SUPPORTED  : Final = 0x01
121# Host command interface supports version 3 protocol
122EC_HOST_CMD_FLAG_VERSION_3   : Final = 0x02
123
124# Wireless switch flags
125EC_WIRELESS_SWITCH_ALL       : Final = ~0x00  # All flags
126EC_WIRELESS_SWITCH_WLAN       : Final = 0x01  # WLAN radio
127EC_WIRELESS_SWITCH_BLUETOOTH  : Final = 0x02  # Bluetooth radio
128EC_WIRELESS_SWITCH_WWAN       : Final = 0x04  # WWAN power
129EC_WIRELESS_SWITCH_WLAN_POWER : Final = 0x08  # WLAN power
EC_MEMMAP_SIZE: Final = 255
EC_MEMMAP_TEXT_MAX: Final = 8
EC_MEMMAP_TEMP_SENSOR: Final = 0
EC_MEMMAP_FAN: Final = 16
EC_MEMMAP_TEMP_SENSOR_B: Final = 24
EC_MEMMAP_ID: Final = 32
EC_MEMMAP_ID_VERSION: Final = 34
EC_MEMMAP_THERMAL_VERSION: Final = 35
EC_MEMMAP_BATTERY_VERSION: Final = 36
EC_MEMMAP_SWITCHES_VERSION: Final = 37
EC_MEMMAP_EVENTS_VERSION: Final = 38
EC_MEMMAP_HOST_CMD_FLAGS: Final = 39
EC_MEMMAP_SWITCHES: Final = 48
EC_MEMMAP_HOST_EVENTS: Final = 52
EC_MEMMAP_BATT_VOLT: Final = 64
EC_MEMMAP_BATT_RATE: Final = 68
EC_MEMMAP_BATT_CAP: Final = 72
EC_MEMMAP_BATT_FLAG: Final = 76
EC_MEMMAP_BATT_COUNT: Final = 77
EC_MEMMAP_BATT_INDEX: Final = 78
EC_MEMMAP_BATT_DCAP: Final = 80
EC_MEMMAP_BATT_DVLT: Final = 84
EC_MEMMAP_BATT_LFCC: Final = 88
EC_MEMMAP_BATT_CCNT: Final = 92
EC_MEMMAP_BATT_MFGR: Final = 96
EC_MEMMAP_BATT_MODEL: Final = 104
EC_MEMMAP_BATT_SERIAL: Final = 112
EC_MEMMAP_BATT_TYPE: Final = 120
EC_MEMMAP_ALS: Final = 128
EC_MEMMAP_ACC_STATUS: Final = 144
EC_MEMMAP_ACC_DATA: Final = 146
EC_MEMMAP_GYRO_DATA: Final = 160
EC_MEMMAP_NO_ACPI: Final = 224
EC_MEMMAP_ACC_STATUS_SAMPLE_ID_MASK: Final = 15
EC_MEMMAP_ACC_STATUS_BUSY_BIT: Final = 16
EC_MEMMAP_ACC_STATUS_PRESENCE_BIT: Final = 128
EC_TEMP_SENSOR_ENTRIES: Final = 16
EC_TEMP_SENSOR_B_ENTRIES: Final = 8
EC_TEMP_SENSOR_NOT_PRESENT: Final = 255
EC_TEMP_SENSOR_ERROR: Final = 254
EC_TEMP_SENSOR_NOT_POWERED: Final = 253
EC_TEMP_SENSOR_NOT_CALIBRATED: Final = 252
EC_TEMP_SENSOR_OFFSET: Final = 200
EC_ALS_ENTRIES: Final = 2
EC_TEMP_SENSOR_DEFAULT: Final = 96
EC_FAN_SPEED_ENTRIES: Final = 4
EC_FAN_SPEED_NOT_PRESENT: Final = 65535
EC_FAN_SPEED_STALLED: Final = 65534
EC_BATT_FLAG_AC_PRESENT: Final = 1
EC_BATT_FLAG_BATT_PRESENT: Final = 2
EC_BATT_FLAG_DISCHARGING: Final = 4
EC_BATT_FLAG_CHARGING: Final = 8
EC_BATT_FLAG_LEVEL_CRITICAL: Final = 16
EC_BATT_FLAG_INVALID_DATA: Final = 32
EC_SWITCH_LID_OPEN: Final = 1
EC_SWITCH_POWER_BUTTON_PRESSED: Final = 2
EC_SWITCH_WRITE_PROTECT_DISABLED: Final = 4
EC_SWITCH_IGNORE1: Final = 8
EC_SWITCH_DEDICATED_RECOVERY: Final = 16
EC_SWITCH_IGNORE0: Final = 32
EC_HOST_CMD_FLAG_LPC_ARGS_SUPPORTED: Final = 1
EC_HOST_CMD_FLAG_VERSION_3: Final = 2
EC_WIRELESS_SWITCH_ALL: Final = -1
EC_WIRELESS_SWITCH_WLAN: Final = 1
EC_WIRELESS_SWITCH_BLUETOOTH: Final = 2
EC_WIRELESS_SWITCH_WWAN: Final = 4
EC_WIRELESS_SWITCH_WLAN_POWER: Final = 8