15.03.2015 Views

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!