coreboot/src/include
Sukumar Ghorai ed1c03a138 soc/intel: separate slp-s0 residency counter frequency in LPIT table
Intel platforms use Low Power Idle Table (LPIT) to enumerate platform
Low Power Idle states. There are two types of low power residencies
 a) CPU PKG C10 - read via MSR (Function fixed hardware interface)
 b) Platform Controller Hub (PCH) SLP_S0 - read via memory mapped IO

Ref. https://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf,
section 2.2.1: value of 0 indicates that counter runs at TSC frequency.

Ref. Intel 64 and IA-32 Architectures Software Developer’s Manual (Vol 4)
MSR 0x632: PC10 residency counter is at same frequency as the TSC.
Whereas slp_s0 residency counter running in different frequency.

BUG=b:300440936
TEST=check kernel cpuidle sysfs are created after kernel boot
  cat /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
  cat /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us

Change-Id: Ibde764551a21b9aecb1c269948f4823548294711
Signed-off-by: Sukumar Ghorai <sukumar.ghorai@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/78177
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2023-10-05 15:22:04 +00:00
..
acpi soc/intel: separate slp-s0 residency counter frequency in LPIT table 2023-10-05 15:22:04 +00:00
boot lib/coreboot_table: Rename lb_fill_pcie 2022-11-04 19:17:49 +00:00
console console: Add format-checking __printf() to die() 2023-05-17 11:23:59 +00:00
cpu */include/cpu: use unsigned int for number of address bits 2023-09-29 20:20:50 +00:00
device acpi: Add functions to declare ARM GIC V3 hardware 2023-09-18 13:34:47 +00:00
efi vc/intel: Remove unnecessary Kconfig options 2023-08-26 21:14:45 +00:00
mipi drivers/soundwire/cs42l42: Support CS42L42 SoundWire device 2023-05-25 21:22:32 +00:00
pc80 drivers/pc80/rtc/mc146818rtc.c: Add Kconfig for RTC CMOS base addresses 2023-05-08 17:51:08 +00:00
smp include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
superio
sys include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
adainit.h Add option to use Ada code in romstage 2022-12-17 20:48:06 +00:00
asan.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
assert.h treewide: Remove 'extern' from functions declaration 2023-05-26 13:45:24 +00:00
b64_decode.h
base3.h
boardid.h
boot_device.h
bootblock_common.h
bootmem.h lib: set up specific purpose memory as LB_MEM_SOFT_RESERVED 2023-03-03 11:10:38 +00:00
bootmode.h
bootsplash.h Center bootsplash on bigger framebuffers 2023-07-17 14:49:04 +00:00
bootstate.h include/bootstate.h: Fail compilation on invalid bootstate hooks 2023-02-04 01:42:31 +00:00
cbfs.h
cbfs_glue.h vboot: Add VBOOT_CBFS_INTEGRATION support 2022-11-08 23:03:49 +00:00
cbmem.h cbmem_top_chipset: Change the return value to uintptr_t 2022-11-18 16:00:45 +00:00
cper.h include/cper.h: Add CPER Memory Error Section definitions 2022-12-09 03:46:33 +00:00
crc_byte.h
ctype.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
delay.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
device_tree.h tree: Drop repeated words 2023-02-07 04:37:31 +00:00
dimm_info_util.h
dp_aux.h
edid.h
elog.h treewide: Remove 'extern' from functions declaration 2023-05-26 13:45:24 +00:00
endian.h
espi.h
fallback.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
fit.h
fmap.h
framebuffer_info.h
fw_config.h lib/fw_config: Make fw_config_is_provisioned() always available 2023-06-17 02:40:57 +00:00
gpio.h soc/intel/common/gpio: Add function to read GPIO TX value 2023-01-25 14:33:06 +00:00
halt.h
identity.h lib/version: Move board identification strings 2023-04-22 16:20:49 +00:00
imd.h
imd_private.h include/imd_private.h: Use C99 flexible arrays 2023-07-30 09:58:12 +00:00
input-event-codes.h include/input-event-codes.h: Update to upstream 2023-09-01 20:59:32 +00:00
inttypes.h
ip_checksum.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
kconfig.h
lib.h
limits.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
list.h
main_decl.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
memlayout.h treewide: stop calling custom TPM log "TCPA" 2023-01-11 16:00:55 +00:00
memory_info.h memory_info: Bump to 64 DIMMs 2023-07-18 15:06:05 +00:00
memrange.h include/memrange.h: Remove trailing semicolon 2022-09-28 16:12:04 +00:00
metadata_hash.h
mrc_cache.h drivers/intel/fsp2_0: Introduce MRC cache store after FSP-M/S APIs 2023-09-05 09:36:17 +00:00
nhlt.h lib/nhlt, soc/intel/skl: Update NHLT to program feedback config 2022-12-21 13:57:48 +00:00
option.h
post.h
program_loading.h lib/program_loaders.c: Mark run_ramstage with __noreturn 2022-07-14 23:10:17 +00:00
ramdetect.h
random.h arch/x86: Use 'enum cb_err' 2022-12-25 15:09:16 +00:00
reg_script.h include/reg_script.h: Remove trailing semicolon 2022-09-28 16:12:24 +00:00
region_file.h
reset.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
rmodule.h
romstage_common.h arch/x86: Add a common romstage entry 2022-06-07 12:54:39 +00:00
romstage_handoff.h
rtc.h
rules.h clean-up: Remove the no more necessary ENV_HAS_DATA_SECTION flag 2023-09-18 13:18:23 +00:00
sar.h include/sar.h: Use C99 flexible arrays 2023-07-30 09:57:43 +00:00
sdram_mode.h
smbios.h arch/x86,lib: Migrate SMBIOS implementation to common code 2023-06-22 22:24:57 +00:00
smmstore.h drivers/smmstore: Expose region device 2023-02-12 08:20:08 +00:00
spd.h spd.h: Move enum ddr3_module_type to ddr3.h 2023-01-04 12:39:32 +00:00
spd_bin.h lib: Add LPDDR5x DRAM type 2022-11-07 02:29:23 +00:00
spd_cache.h
spi-generic.h
spi_bitbang.h
spi_flash.h spi: Add new struct spi_flash_bpbits for block protection bits 2023-10-05 12:51:38 +00:00
spi_sdcard.h
stage_cache.h
stdarg.h
stdbool.h
stddef.h clean-up: Remove the no more necessary ENV_HAS_DATA_SECTION flag 2023-09-18 13:18:23 +00:00
stdint.h
stdio.h
stdlib.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
string.h treewide: Add 'IWYU pragma: export' comment 2022-11-03 13:05:17 +00:00
swab.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
symbols.h x86: Add .data section support for pre-memory stages 2023-09-14 21:02:07 +00:00
thread.h rules.h: Use more consistent naming 2022-05-16 21:52:22 +00:00
timer.h timer: Change timer util functions to 64-bit 2022-09-14 11:55:39 +00:00
timestamp.h
types.h treewide: Add 'IWYU pragma: export' comment 2022-11-03 13:05:17 +00:00
uuid.h
ux_locales.h lib: Support localized text of memory_training_desc in ux_locales.c 2023-06-04 19:00:18 +00:00
vbe.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
version.h lib/version: Move board identification strings 2023-04-22 16:20:49 +00:00
watchdog.h include: Add SPDX-License-Identifiers to files missing them 2022-08-01 13:59:11 +00:00
wrdd.h
xxhash.h lib/xxhash.c: Add new hash functions 2022-09-07 22:24:51 +00:00