+/**\r
+ Display Cache Configuration.\r
+\r
+ @param[in] CacheConfiguration Cache Configuration.\r
+Bits 15:10 Reserved, must be 0\r
+Bits 9:8 Operational Mode\r
+ 0h - Write Through\r
+ 1h - Write Back\r
+ 2h - Varies with Memory Address\r
+ 3h - Unknown\r
+Bit 7 Enabled/Disabled\r
+ 1 - Enabled\r
+ 0 - Disabled\r
+Bits 6:5 Location\r
+ 0h - Internal\r
+ 1h - External\r
+ 2h - Reserved\r
+ 3h - Unknown\r
+Bit 4 Reserved, must be zero\r
+Bit 3 Cache Socketed\r
+ 1 - Socketed\r
+ 0 - Unsocketed\r
+Bits 2:0 Cache Level\r
+ 1 through 8 (For example, an L1 cache would\r
+ use value 000b and an L3 cache would use 010b.)\r
+\r
+ @param[in] Option The option\r
+**/\r
+VOID\r
+DisplayCacheConfiguration (\r
+ IN UINT16 CacheConfiguration,\r
+ IN UINT8 Option\r
+ )\r
+{\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_CONFIGURATION), gShellDebug1HiiHandle);\r
+ PRINT_INFO_OPTION (CacheConfiguration, Option);\r
+\r
+ if (BIT (CacheConfiguration, 15) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT15_NOT_ZERO), gShellDebug1HiiHandle);\r
+ } else if (BIT (CacheConfiguration, 14) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT14_NOT_ZERO), gShellDebug1HiiHandle);\r
+ } else if (BIT (CacheConfiguration, 13) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT13_NOT_ZERO), gShellDebug1HiiHandle);\r
+ } else if (BIT (CacheConfiguration, 12) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT12_NOT_ZERO), gShellDebug1HiiHandle);\r
+ } else if (BIT (CacheConfiguration, 11) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT11_NOT_ZERO), gShellDebug1HiiHandle);\r
+ } else if (BIT (CacheConfiguration, 10) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT10_NOT_ZERO), gShellDebug1HiiHandle);\r
+ } else if (BIT (CacheConfiguration, 4) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BIT4_NOT_ZERO), gShellDebug1HiiHandle);\r
+ }\r
+\r
+ //\r
+ // Check BITs 9:8\r
+ //\r
+ switch ((CacheConfiguration & 0x300) >> 8) {\r
+ case 0:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_THROUGH), gShellDebug1HiiHandle);\r
+ break;\r
+\r
+ case 1:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_WRITE_BACK), gShellDebug1HiiHandle);\r
+ break;\r
+\r
+ case 2:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_VARIES_WITH_MEM_ADDR), gShellDebug1HiiHandle);\r
+ break;\r
+\r
+ case 3:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
+ break;\r
+ }\r
+\r
+ //\r
+ // Check BIT 7\r
+ //\r
+ if (BIT (CacheConfiguration, 7) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ENABLED), gShellDebug1HiiHandle);\r
+ } else {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_DISABLED), gShellDebug1HiiHandle);\r
+ }\r
+\r
+ //\r
+ // Check BITs 6:5\r
+ //\r
+ switch ((CacheConfiguration & 0x60) >> 5) {\r
+ case 0:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_INTERNAL), gShellDebug1HiiHandle);\r
+ break;\r
+\r
+ case 1:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_EXTERNAL), gShellDebug1HiiHandle);\r
+ break;\r
+\r
+ case 2:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED), gShellDebug1HiiHandle);\r
+ break;\r
+\r
+ case 3:\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_UNKNOWN), gShellDebug1HiiHandle);\r
+ break;\r
+ }\r
+\r
+ //\r
+ // Check BIT 3\r
+ //\r
+ if (BIT (CacheConfiguration, 3) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_SOCKETED), gShellDebug1HiiHandle);\r
+ } else {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_NOT_SOCKETED), gShellDebug1HiiHandle);\r
+ }\r
+\r
+\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_CACHE_LEVEL), gShellDebug1HiiHandle, (CacheConfiguration & 0x07) + 1);\r
+}\r
+\r