Hisilicon/SMBIOS: Update ProcessorID from MIDR
There is no register restore processor id at
ARM Platform,we talked with ARM Charles and made a agreement
that we can use MIDR instead,maybe there will be a specific register
to read the processor id in future.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
Reviewed-by: Charles Garcia-Tobin <charles.garcia-tobin@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
diff --git a/Chips/Hisilicon/Drivers/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c b/Chips/Hisilicon/Drivers/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c
index 07dae5f..005d28f 100644
--- a/Chips/Hisilicon/Drivers/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c
+++ b/Chips/Hisilicon/Drivers/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c
@@ -490,6 +490,7 @@
CHAR16 *CpuVersion;
STRING_REF TokenToUpdate;
+ UINT64 *ProcessorId;
Type4Record = NULL;
ProcessorManuStr = NULL;
ProcessorVersionStr = NULL;
@@ -614,6 +615,8 @@
Type4Record->ProcessorCharacteristics = ProcessorCharacteristics.Data;
Type4Record->ExternalClock = (UINT16)(ArmReadCntFrq() / 1000 / 1000);
+ ProcessorId = (UINT64 *)&(Type4Record->ProcessorId);
+ *ProcessorId = ArmReadMidr();
OptionalStrStart = (CHAR8 *) (Type4Record + 1);
UnicodeStrToAsciiStr (ProcessorSocketStr, OptionalStrStart);