7.8 Execution in Place PEIMs
Most PEIMs are Execution in Place (XIP) and not compressible as they run prior to permanent memory. There is a tradeoff between the space-complexity of the code and the time complexity of the modules: that is, keeping modules small versus keeping the code paths short.
Minimizing the amount and complexity of code in PEIM should be standard procedure. For example, a big loop needs to be avoided for those codes running on flash.
When a PEIM attempts to load itself into system memory and run twice, it can
use RegisterForShadow()
to do it. RegisterForShadow()
is in the Pei Service
Table.