10.01.2015 Views

Intel(r) UEFI Development Kit Debugger Tool User Manual

Intel(r) UEFI Development Kit Debugger Tool User Manual

Intel(r) UEFI Development Kit Debugger Tool User Manual

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

[Rule.Common.PEIM]<br />

FILE PEIM = $(NAMED_GUID) {<br />

PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex<br />

TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi<br />

UI STRING="$(MODULE_NAME)" Optional<br />

VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)<br />

}<br />

To:<br />

Figure 3-7—PEIM original<br />

[Rule.Common.PEIM]<br />

FILE PEIM = $(NAMED_GUID) {<br />

PEI_DEPEX PEI_DEPEX Optional |.depex<br />

PE32 PE32 Align = 32 |.efi<br />

UI STRING="$(MODULE_NAME)" Optional<br />

VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)<br />

}<br />

Figure 3-8—Revised rule change for PEIM<br />

Apply similar changes to the rule sections for SEC and PEI_CORE. The corresponding<br />

rule section names may vary on different platforms but could look like Rule.Common.SEC<br />

or Rule.Common.PEI_CORE.<br />

3.2.6 Update the CPU driver on ECP-based platforms<br />

Most EDK compatibility platforms (ECP) use their own central processing unit (CPU)<br />

driver. This driver must be updated during the build process so that the target platform’s<br />

debugging feature can be enabled.<br />

Note: This step is not needed for native platforms using a CPU driver compliant<br />

with the UDK debug solution.<br />

The main task performed by the update is to reserve the original configuration of the<br />

interrupt description table (IDT) entries and prevent those entries from being modified.<br />

The update performs these steps:<br />

1. Loads the original IDT table.<br />

2. Calculates the IDT table’s entries count.<br />

3. Copies the original IDT table entries to the new IDT table.<br />

4. Updates the code segment (CS) field for the IDT table entries, as the DXE<br />

(driver execution) phase is using a different segment descriptor.<br />

5. Fills the rest of IDT entries needed by CPU driver.<br />

Note: If the CPU module is not linked with BaseLib, refer to<br />

MdePkg/Library/BaseLib for the implementation of AsmReadIdtr(),<br />

AsmWriteIdtr(), and AsmReadCs().<br />

The updated code should look similar to the following:<br />

18

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

Saved successfully!

Ooh no, something went wrong!