miliuco Posted October 24, 2020 Share Posted October 24, 2020 (edited) In Opencore (OC) 0.6.3, still in beta phase, a change has been made to SampleCustom.plist file, a new Memory section has been added within PlatformInfo, it describes a series of RAM memory parameters such as as defined in the SMBIOS specification. Note: article useful only for those cases where memory has errors in SMBIOS and it is convenient to define its parameters manually. Most users start from Sample.plist file (instead of SampleCustom.plist file) and Memory section is absent from it, this article is not necessary for them. The difference is the new CustomMemory key which, if set to true, requires filling the Memory section but, if set to false, allows that section to be completely omitted. Changes in OC 0.6.3 config.plistOC 0.6.3 presents significant changes in its operating characteristics, several of them aimed at improving its integration with Big Sur. It also presents changes in the structure of SampleCustom.plist. All of these changes are inside PlatformInfo. Removed SMBIOS key - MemoryFormFactor Added a new key called CustomMemory Added a new key called PlatformNVRAM with 5 subkeys: BID, FirmwareFeatures, FirmwareMask, MLB and ROM, some of these keys are still present in the SMBIOS section Added a new key called Memory with several subkeys related to RAM: DataWidth: bandwidth in bits of the bus, usually has the value of 64 ErrorConnection: primary method of error detection or correction (none, parity, ECC ...) FormFactor: type of used module (DIMM, SODIMM ...) MaxCapacity: maximum memory capacity, in bytes, supported by the motherboard TotalWidth: total value of bus width, in bits, including error correction channels if any; if they do not exist, TotalWidth value is identical to DataWidth Type: memory type (DDR3, DDR4 ...) DetailType: additional information about memory (Synchronous, Buffered, Unbuffered ...) Devices: this section describes the memory banks, occupied or not, and specifies characteristics of each one: AssetTag: memory module property tag BankLocator: name of the memory bank in which the module is housed DeviceLocator: description of the bank position on the motherboard Manufacturer: memory manufacturer PartNumber: code corresponding to the memory model SerialNumber: serial number of each module Size: size in MB, 0 indicates it is empty Speed: maximum memory speed in MT / s (megatransfers per second). How to know characteristics of RAM?In Linux world there has long been a tool called dmidecode that provides information about hardware as described in the BIOS according to SMBIOS / DMI standard. Acidanthera has a specific version for macOS, the current version is 3.2c (dmidecode-mac-3.2c.zip). It is downloaded as an executable dmidecode file that should be copied to the / usr / local / bin folder so that it is accessible in the PATH variable. With this tool we obtain information about the SMBIOS parameters of the computer through the I / O Registry. In this case, we are interested in the memory section, specifically regarding the 4 memory slots. For this we use dmidecode with -t memory modifier. This code, for example, is from my PC (only the data of the first memory bank is shown): > dmidecode -t memory # dmidecode 3.2c Scanning I/O Registry for entry point. SMBIOS 3.2 present. Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 0 kB Error Information Handle: No Error Number Of Devices: 4 Memory Device Array Handle: 0x009D Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 8 GB Form Factor: DIMM Locator: ChannelA-DIMM0 Bank Locator: BANK 0 Type: DDR4 Type Detail: Synchronous Speed: 3200 MT/s Manufacturer: Corsair Serial Number: 200400138487908 Asset Tag: 9876543210 Part Number: CMK16GX4M2B3200C16 (here goes on with parameters of the other 3 memory banks). With dmidecode we can find out some of the data to write in config.plist: DataWidth, ErrorConnection, FormFactor, TotalWidth, Type, TypeDetail, BankLocator, DeviceLocator, Speed, PartNumber, AssetTag and Manufacturer. The value of MaxCapacity is specified by the motherboard manufacturer. SerialNumber can be seen on the label attached to each memory module.Fill in the config.plist dataWith the data obtained from dmidecode, motherboard specifications, and memory module label, fields in config.plist can be filled in correctly. These data are from my system, you have to change them for yours if they are different.DataWidth: 64 (current RAM usually is 64-bit)ErrorCorrection: 3 (none)FormFactor: 9 (DIMM)MaxCapacity: 128 GB (137438953472 bytes)TotalWidth: 64 (matches DataWidth)Type: 26 (DDR4)TypeDetail: 128 (Synchronous, bit 7)AssetTag: 9876543210 (dmidecode)BankLocator: BANK 0 / BANK 1 / BANK 2 / BANK 3DeviceLocator: ChannelA-DIMM0 / ChannelA-DIMM1 / ChannelB-DIMM0 / ChannelB-DIMMManufacturer: CorsairPartNumber: CMK16GX4M2B3200C16 (manufacturer's label)SerialNumber: 200400138487908 / 200400138487909 (manufacturer's label)Size: 8 Gb per module (8000 MB)Speed: 3200 MT / s.Note: see the OpenCore Reference Manual (0.6.3) [2020.10.24] for allowed values in these keys. Edited October 26, 2020 by miliuco 2 2 Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/ Share on other sites More sharing options...
1Revenger1 Posted October 25, 2020 Share Posted October 25, 2020 I'd probably add that with CustomMemory set to false, that the memory section is not needed - and in fact can be completely gone similar to how various PlatformInfo children can not be filled in when Automatic is set to true. 1 Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2742058 Share on other sites More sharing options...
miliuco Posted October 25, 2020 Author Share Posted October 25, 2020 (edited) @1Revenger1 @Hervé I think you are both right. When installing OC 0.6.3 I got "unable to parse configuration" errors and, when I saw this new key, I thought the bug was there. So I tried to learn how the Memory section is filled. After reading you, I have set CustomMemory to false and I have deleted all the keys that are included into Memory and Big Sur boots up and works the same. Only difference is that some insignificant data is missing in System Profile - Memory but it seems purely cosmetic because memory is well recognized, without the need for these keys. Thank you! Edited October 26, 2020 by miliuco Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2742092 Share on other sites More sharing options...
Tecnicaso Rico Posted October 25, 2020 Share Posted October 25, 2020 (edited) Isn't the new memory section suppose to be added to the Sample.plist for those who are creating a new config.plist? Edited October 25, 2020 by Tecnicaso Rico Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2742117 Share on other sites More sharing options...
miliuco Posted October 25, 2020 Author Share Posted October 25, 2020 I don't think you have to add that Memory section to your config.plist unless you really need it. My mistake. I see now that, in Sample.plist from OC 0.6.3, Memory section does not appear and CustomMemory is false but, in SampleCustom.plist, CustomMemory is true and full Memory section is present.When I installed 0.6.3 I should have taken SampleCustom.plist and worked with this file instead of Sample.plist. Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2742118 Share on other sites More sharing options...
Tecnicaso Rico Posted October 25, 2020 Share Posted October 25, 2020 Thanks for letting me know. Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2742119 Share on other sites More sharing options...
miliuco Posted October 26, 2020 Author Share Posted October 26, 2020 (edited) Modified the text of the article in the first post to adapt to what is described in the rest of the posts."In Opencore (OC) 0.6.3, still in beta phase, a change has been made to SampleCustom.plist file, a new Memory section has been added within PlatformInfo, it describes a series of RAM memory parameters such as defined in the SMBIOS specification.Note: article useful only for those cases where memory has errors in SMBIOS and it is convenient to define its parameters manually. Most users start from Sample.plist file (instead of SampleCustom.plist file) and Memory section is absent from it, this article is not necessary for them. The difference is the new CustomMemory key which, if set to true, requires filling the Memory section but, if set to false, allows that section to be completely omitted."Sorry for the inconveniences. Edited October 27, 2020 by miliuco 1 Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2742152 Share on other sites More sharing options...
Cursichell@ Posted November 4, 2020 Share Posted November 4, 2020 I do have one question here, how on opencore we can simulate 12 slots? like the MacPro? Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2742954 Share on other sites More sharing options...
1Revenger1 Posted November 4, 2020 Share Posted November 4, 2020 There are some cases where it can be misreported - I've seen it mostly on older core 2 and Pentium 4 machines though. Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2743009 Share on other sites More sharing options...
TheBloke Posted November 15, 2020 Share Posted November 15, 2020 Thanks very much for the tutorial, it was very helpful! Does anyone know if it is possible to use CustomMemory to avoid the issue with MacPro 7,1 SMBIOS, where the following error is seen, both as a notification and in About This Mac -> Memory: There is a kext to fix this, MacProMemoryNotificationDisabler.kext. However this kext cannot currently work on BigSur, due to Lilu no longer being able to apply the same patches. I saw a post on Reddit that indicated that filling out CustomMemory would allow fixing this problem without that kext. But it hasn't helped - I still get that warning (I'm currently testing in Catalina 10.15.7). My CustomMemory settings are working - for example I can now see manufacturer and serial number details that I couldn't before (I entered fake details for now because dmidecode is not showing me my real serial numbers): Below is the config I am using in OpenCore 0.6.3. I filled out the details using dmidecode as described in the OP. I have also tried adding four extra empty memory slots, to match the Mac Pro's 12. And I've tried various values for MaxCapacity: 256GB (the real max on this board), 1.5TB (the max on the Mac Pro, and what's shown by dmidecode), and 768GB (the value that the memory alert claims is my maximum.) If anyone has any idea whether I can fix this error, or perhaps I have some incorrect config here, I'd be most grateful. <key>Memory</key> <dict> <key>DataWidth</key> <integer>64</integer> <key>ErrorCorrection</key> <integer>3</integer> <key>FormFactor</key> <integer>9</integer> <key>MaxCapacity</key> <integer>1649267441664</integer> <key>TotalWidth</key> <integer>72</integer> <key>Type</key> <integer>26</integer> <key>TypeDetail</key> <integer>128</integer> <key>Devices</key> <array> <dict> <key>AssetTag</key> <string>123456789</string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_A1</string> <key>Manufacturer</key> <string>Patriot</string> <key>PartNumber</key> <string>ViperSteel0001</string> <key>SerialNumber</key> <string>1234000</string> <key>Size</key> <integer>32768</integer> <key>Speed</key> <integer>2666</integer> </dict> <dict> <key>AssetTag</key> <string></string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_A2</string> <key>Manufacturer</key> <string></string> <key>PartNumber</key> <string></string> <key>SerialNumber</key> <string></string> <key>Size</key> <integer>0</integer> <key>Speed</key> <integer>0</integer> </dict> <dict> <key>AssetTag</key> <string>123456789</string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_B1</string> <key>Manufacturer</key> <string>Patriot</string> <key>PartNumber</key> <string>ViperSteel0001</string> <key>SerialNumber</key> <string>1234001</string> <key>Size</key> <integer>32768</integer> <key>Speed</key> <integer>2666</integer> </dict> <dict> <key>AssetTag</key> <string></string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_B2</string> <key>Manufacturer</key> <string></string> <key>PartNumber</key> <string></string> <key>SerialNumber</key> <string></string> <key>Size</key> <integer>0</integer> <key>Speed</key> <integer>0</integer> </dict> <dict> <key>AssetTag</key> <string>56</string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_C1</string> <key>Manufacturer</key> <string>Patriot</string> <key>PartNumber</key> <string>ViperSteel0001</string> <key>SerialNumber</key> <string>1234002</string> <key>Size</key> <integer>32768</integer> <key>Speed</key> <integer>2666</integer> </dict> <dict> <key>AssetTag</key> <string></string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_C2</string> <key>Manufacturer</key> <string></string> <key>PartNumber</key> <string></string> <key>SerialNumber</key> <string></string> <key>Size</key> <integer>0</integer> <key>Speed</key> <integer>0</integer> </dict> <dict> <key>AssetTag</key> <string>123456789</string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_D1</string> <key>Manufacturer</key> <string>Patriot</string> <key>PartNumber</key> <string>ViperSteel0001</string> <key>SerialNumber</key> <string>1234003</string> <key>Size</key> <integer>32768</integer> <key>Speed</key> <integer>2666</integer> </dict> <dict> <key>AssetTag</key> <string></string> <key>BankLocator</key> <string>NODE 1</string> <key>DeviceLocator</key> <string>CPU1_DIMM_D2</string> <key>Manufacturer</key> <string></string> <key>PartNumber</key> <string></string> <key>SerialNumber</key> <string></string> <key>Size</key> <integer>0</integer> <key>Speed</key> <integer>0</integer> </dict> </array> </dict> 1 Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2744281 Share on other sites More sharing options...
TheBloke Posted November 25, 2020 Share Posted November 25, 2020 Dortania now have a published guide showing how to use CustomMemory to fix the MacPro 7,1 Memory Notification issue: https://dortania.github.io/OpenCore-Post-Install/universal/memory.html I was right that adding 12 slots to match the Mac Pro was important, but it required that all 12 slots show as filled before the memory error goes away. 1 Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2745422 Share on other sites More sharing options...
cankiulascmnfye Posted June 25, 2023 Share Posted June 25, 2023 (edited) @miliuco I was wondering why macOS reported my Laptop's memory speed wrong (it's reported as 2400 Mhz but the RAM is specified for 2667 Mhz and is listed as such in Windows). When I ran dmidecode -t memory in Linux, I noticed the reason why: Besides "Speed", there's also another category: Configured Memory Speed: 2400 MT/s I guess macOS uses this instead of "Speed". The question now is: what is the speed the RAM actually runs at: the 2667 Mhz it's capable of or does it run at 2400 Mhz? And if it is running at 2400 Mhz only, how can I cange it? The BIOS in my Lenovo T490 doesn't have a section to configure RAM settings. Hmm… Edited June 25, 2023 by cankiulascmnfye Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2807197 Share on other sites More sharing options...
pitrysha Posted June 25, 2023 Share Posted June 25, 2023 5 hours ago, cankiulascmnfye said: @miliuco I was wondering why macOS reported my Laptop's memory speed wrong (it's reported as 2400 Mhz but the RAM is specified for 2667 Mhz and is listed as such in Windows). When I ran dmidecode -t memory in Linux, I noticed the reason why: Besides "Speed", there's also another category: Configured Memory Speed: 2400 MT/s I guess macOS uses this instead of "Speed". The question now is: what is the speed the RAM actually runs at: the 2667 Mhz it's capable of or does it run at 2400 Mhz? And if it is running at 2400 Mhz only, how can I cange it? The BIOS in my Lenovo T490 doesn't have a section to configure RAM settings. Hmm… DDR speed can be limited by the processor, MacOS shows at what frequency DDR is running and not what is installed. OpenCore does not change the frequency of DDR, you can only change the information displayed, but DDR will work at the frequency that the bios sets it to Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2807210 Share on other sites More sharing options...
miliuco Posted June 25, 2023 Author Share Posted June 25, 2023 @cankiulascmnfye Right DDR freq is that is set to in BIOS, as @pitrysha says. I don't know why you see a wrong frequency. OpenCore ofc doesn't change this number. Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2807211 Share on other sites More sharing options...
cankiulascmnfye Posted June 25, 2023 Share Posted June 25, 2023 Well, like I said: I am pretty shure it's because macOS uses `Configured Memory Speed` instead of `Speed` Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2807213 Share on other sites More sharing options...
pitrysha Posted June 25, 2023 Share Posted June 25, 2023 8 minutes ago, cankiulascmnfye said: Well, like I said: I am pretty shure it's because macOS uses `Configured Memory Speed` instead of `Speed` It probably has DDR 2666 installed but the CPU supports DDR max 2400 so DDR will run at the frequency supported by the CPU. What CPU do you have? Link to comment https://www.insanelymac.com/forum/topic/345520-opencore-063-new-memory-properties-section/#findComment-2807214 Share on other sites More sharing options...
Recommended Posts