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->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;
|
AcpiEx->UID = 0;
|
||||||
|
|
||||||
AsciiStr = (CHAR8 *) ((UINT8 *)AcpiEx + sizeof (ACPI_EXTENDED_HID_DEVICE_PATH));
|
AsciiStr = (CHAR8 *) ((UINT8 *)AcpiEx + sizeof (ACPI_EXTENDED_HID_DEVICE_PATH));
|
||||||
|
|
|
@ -480,13 +480,22 @@ DevPathToTextAcpiEx (
|
||||||
//
|
//
|
||||||
// use AcpiExp()
|
// use AcpiExp()
|
||||||
//
|
//
|
||||||
UefiDevicePathLibCatPrint (
|
if (AcpiEx->CID == 0) {
|
||||||
Str,
|
UefiDevicePathLibCatPrint (
|
||||||
L"AcpiExp(%s,%s,%a)",
|
Str,
|
||||||
HIDText,
|
L"AcpiExp(%s,0,%a)",
|
||||||
CIDText,
|
HIDText,
|
||||||
UIDStr
|
UIDStr
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
UefiDevicePathLibCatPrint (
|
||||||
|
Str,
|
||||||
|
L"AcpiExp(%s,%s,%a)",
|
||||||
|
HIDText,
|
||||||
|
CIDText,
|
||||||
|
UIDStr
|
||||||
|
);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (AllowShortcuts) {
|
if (AllowShortcuts) {
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue