# Overview * **Feature Name:** platform NVMe feature * **PI Phase(s) Supported:** PEI, DXE * **SMM Required?** No ## Purpose This feature package implements NVMe related platform features. # High-Level Theory of Operation This feature provides NVMe related platform features: 1. NvmePciHcPei.inf will call a library function to get the PCI bridge information, and scan PCI devices on PCI bus. Platform can implement its own library. 2. PowerLossNotifyDxe.inf will get platform policy and perform platform configuration via POWER_LOSS_NOTIFY_SETTING_PROTOCOL. ## Firmware Volumes * PostMemory ## Modules * NvmePciHcPei * PowerLossNotifyDxe * NvmePcieRpLibNull ## NvmePciHcPei The driver scans NVMe devices on PCI bus and provides NVMe controller information via EDKII_NVM_EXPRESS_HOST_CONTROLLER_PPI. ## PowerLossNotifyDxe The driver send command to control PLN feature on NVMe devices, and perfrom platform configuration via POWER_LOSS_NOTIFY_SETTING_PROTOCOL. ## NvmePcieRpLibNull A NULL implemention of library NvmePcieRpLib, it return NULL for function GetNextRootPortComplex(). Platform maybe implemente its own NvmePcieRpLib. ## Configuration There is not special configuration. But the platform maybe implemente its own NvmePcieRpLib. ## Data Flows Architecturally defined data structures and flows for the feature. ### Data flows of NvmePciHcPei The driver install EDKII_NVM_EXPRESS_HOST_CONTROLLER_PPI which is consumed by EDK2 NVMe drivers. ### Data flows of PowerLossNotifyDxe The driver consumed POWER_LOSS_NOTIFY_SETTING_PROTOCOL which is installed by platform. ## Control Flows Consumer gets NVMe controller configuration via EDKII_NVM_EXPRESS_HOST_CONTROLLER_PPI. ## Build Flows No any special build flows is needed. ## Test Point Results Verified by bios debug log. ## Functional Exit Criteria Check by bios debug log to see if EDKII_NVM_EXPRESS_HOST_CONTROLLER_PPI is installed successfully. ## Feature Enabling Checklist Include NvmeFeature.dsc ## Common Optimizations