mirror of https://github.com/acidanthera/audk.git
MdePkg: Handle AcpiExp device path when optional para is not specified
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1243 AcpiExp text device path: AcpiExp(HID,CID,UIDSTR) And according to UEFI spec, the CID parameter is optional and has a default value of 0. But current implementation miss to check following cases for the AcpiExp. FromText:when text device is AcpiExp(HID,,UIDSTR)/AcpiExp(HID,0,UIDSTR) ToText: when the CID is 0 in the node structure This commit is to do the enhancement. Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
This commit is contained in:
parent
3874108034
commit
a8b5750901
|
@ -919,7 +919,16 @@ DevPathFromTextAcpiExp (
|
|||
);
|
||||
|
||||
AcpiEx->HID = EisaIdFromText (HIDStr);
|
||||
AcpiEx->CID = EisaIdFromText (CIDStr);
|
||||
//
|
||||
// According to UEFI spec, the CID parametr is optional and has a default value of 0.
|
||||
// So when the CID parametr is not specified or specified as 0 in the text device node.
|
||||
// Set the CID to 0 in the ACPI extension device path structure.
|
||||
//
|
||||
if (*CIDStr == L'\0' || *CIDStr == L'0') {
|
||||
AcpiEx->CID = 0;
|
||||
} else {
|
||||
AcpiEx->CID = EisaIdFromText (CIDStr);
|
||||
}
|
||||
AcpiEx->UID = 0;
|
||||
|
||||
AsciiStr = (CHAR8 *) ((UINT8 *)AcpiEx + sizeof (ACPI_EXTENDED_HID_DEVICE_PATH));
|
||||
|
|
|
@ -480,13 +480,22 @@ DevPathToTextAcpiEx (
|
|||
//
|
||||
// use AcpiExp()
|
||||
//
|
||||
UefiDevicePathLibCatPrint (
|
||||
Str,
|
||||
L"AcpiExp(%s,%s,%a)",
|
||||
HIDText,
|
||||
CIDText,
|
||||
UIDStr
|
||||
);
|
||||
if (AcpiEx->CID == 0) {
|
||||
UefiDevicePathLibCatPrint (
|
||||
Str,
|
||||
L"AcpiExp(%s,0,%a)",
|
||||
HIDText,
|
||||
UIDStr
|
||||
);
|
||||
} else {
|
||||
UefiDevicePathLibCatPrint (
|
||||
Str,
|
||||
L"AcpiExp(%s,%s,%a)",
|
||||
HIDText,
|
||||
CIDText,
|
||||
UIDStr
|
||||
);
|
||||
}
|
||||
} else {
|
||||
if (AllowShortcuts) {
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue