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 />

This keyword is used primarily when defining flags settings for certain operations. This keyword will<br />

primarily be used if a particular operation requires additional information from a hardware specific<br />

interface. The intention is that once the data is retrieved successfully, the bit will internally be turned<br />

off and a callback will not be done again. When doing a callback, a key will be passed to the driver<br />

who exported this data. The driver interprets the key and returns the appropriate data in an appropriate<br />

form. The compiler will ensure the key value specified is unique across the entire formset.<br />

A common scenario where this might be used is when a text op-code which prints CPU information is<br />

used and needs to print information like the CPU frequency. This obviously could not have been<br />

determined during the building of the VFR file.<br />

Example: text text = STR_CPU_FREQUENCY_TEXT,<br />

text = STR_CPU_DERIVED_TEXT,<br />

flags = DYNAMIC,<br />

key = CPU_FREQUENCY_KEY;<br />

More information about interacting with hardware is contained in section 2.6.<br />

4.3.4 INTERACTIVE<br />

**Limit to one-of, text, and string, and numeric – any reason for other op-codes to be of this<br />

class?**<br />

This keyword is used primarily when defining flags settings for certain operations. This keyword will<br />

primarily be used if a particular operation requires additional information from a hardware specific<br />

interface. The intention is that once the initial data is retrieved successfully, the DYNAMIC bit will<br />

internally be disabled. This assumes that the infrastructure now has sufficient data to display initial<br />

data to the screen.<br />

The INTERACTIVE flag is not compatible with exporting data to runtime since it assumes callbacks to<br />

a driver which may not exist in the O/S runtime space. The use of this flag should be relegated to preboot<br />

only utilities.<br />

Once a user makes a selection on a tag that is interactive, a callback will be made to retrieve the data<br />

from a driver. A common use for this flag might be the entering of a modem configuration string, and<br />

returning data based on the resulting status from the modem.<br />

Example: string<br />

endstring;<br />

varid = NULL.ModemString,<br />

prompt = STR_MODEM_STRING_PROMPT,<br />

help = STR_MODEM_STRING_HELP,<br />

minsize = 1,<br />

maxsize = 60,<br />

flags = INTERACTIVE,<br />

key = MODEM_STRING_KEY,<br />

In the above example, a user would select the modem string prompt. After typing in the modem string<br />

to send to the modem (i.e. ATE1M0), a callback to the driver would send this packet of data to the<br />

modem. The modem will give some return code to the called driver. The driver will return back to the<br />

38

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

Saved successfully!

Ooh no, something went wrong!