Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / AHCI / SataController / README.md
@Ajax Dong Ajax Dong 2 days ago 1 KB Full restructure

SataController

Index: 0128 | Size: 158.0 KB | Phase: DXE | Arch: X64

Overview

SATA host controller driver implementing the EFI_IDE_CONTROLLER_INIT_PROTOCOL for Intel PCH SATA controllers on the Purley platform. Manages channel enumeration, device identification (IDENTIFY DEVICE), PIO/DMA mode calculation, and asynchronous command submission. Also integrates S3 boot script management -- saves/restores SATA controller configuration to/from the SMM LockBox for S3 resume path.

Key Functions

  • SataGetDeviceCount / SataGetDevice: Enumerate and identify SATA devices on available channels
  • SataIdentifyDevice: Execute ATA IDENTIFY DEVICE command, parse capabilities (PIO modes, DMA modes, IORDY support)
  • SataCalculateBestPioMode: Determine optimal PIO timing mode from IDENTIFY data (modes 0-4 based on Field103)
  • PchGetPchSeries: Detect PCH generation (SPT range 0x9D00-0x9D3F, CNP range, Cannon Point) for controller-specific configuration
  • S3BootScriptLibInit / SaveBootScriptDataToLockBox: Save SATA register state to LockBox for S3 resume, including memory ranges and boot script context

Protocols/Dependencies

  • EFI_IDE_CONTROLLER_INIT_PROTOCOL, EFI_SMM_BASE2_PROTOCOL
  • PCI I/O protocol (MmPciBase for PCH register access)
  • SMM LockBox protocol (SmmLockBoxSave/Restore/SetAttributes)
  • S3 Boot Script Library, DxeSmmReadyToLock event

Platform

Intel Purley platform (PurleySktPkg), Lenovo HR650X. PCH SATA controller with S3 resume support.