SetupDesignGuide.pdf - Firmware Encoding Index
SetupDesignGuide.pdf - Firmware Encoding Index
SetupDesignGuide.pdf - Firmware Encoding Index
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Setup Design Guide<br />
DRAFT<br />
Human Interface Infrastructure<br />
Database<br />
Consists of IFR/String/Font<br />
Which has been submitted by varying EFI drivers<br />
Runtime<br />
Buffer<br />
EFI Configuration Driver<br />
Provides User Interface Support<br />
Callable by a Protocol Interface<br />
Runtime Configuration<br />
Application<br />
Can act as a server to<br />
an HTML browser<br />
2.6 How to get hardware information in setup<br />
For the most part, the only hardware interaction that the Configuration Driver has is when it accesses<br />
NVRAM or saves information to an RTC. However, there are times when a developer needs to get<br />
hardware information presented to the user.<br />
In this infrastructure there are two classifications of hardware interaction, single and multiple iteration.<br />
Each of these interactions have varying procedures one must follow as well as varying ramifications.<br />
2.6.1 Single Iteration Hardware Interaction<br />
An EFI driver that uses the EFI setup infrastructure will typically carry both IFR and string data. In<br />
some cases, not all the information that is needed is included at build time. For example, a user might<br />
have a text string which shows what the CPU’s frequency is. In this case, the information is obviously<br />
not available at build time, so the information has to be retrieved.<br />
There are several ways one might go about this. One way might be that the driver that is about to<br />
export the setup data to the HII database calls the appropriate hardware services to determine what the<br />
CPU frequency is, fills in the appropriate string data, and then exports the data to the HII database.<br />
Another way might be that the driver that has exported data to the HII database needs to add<br />
information to the database could use the HII protocol calls for NewString or UpdateForm. Both<br />
of these functions are intended for post-export modification of database information.<br />
Another method, which is used for more complex situations, would be to label the op-code which<br />
required additional data with a DYNAMIC flag. When the data is exported to the HII database, it calls<br />
back to the driver to get the additional data. The driver will do the hardware interaction and return a<br />
packet of data to the database to fill in the appropriate string data.<br />
Once this single level of hardware interaction is complete, the presentation data stored in the database is<br />
static and the DYNAMIC flag is turned off. Due to the static nature of this data, it is able to be used<br />
pre-boot and be exported to an O/S runtime application and be used during that phase of operation.<br />
20