Contribute
Register

[GUIDE] OpenCore 0.6.3: new memory properties section

Status
Not open for further replies.
Why the new memory section is not present yet in the Sample.plist after building latest OpenCore? Also, after building latest OpenCore I can still boot normally without this section...
 
Why the new memory section is not present yet in the Sample.plist after building latest OpenCore? Also, after building latest OpenCore I can still boot normally without this section...
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.
:O
 
@ekohn00 @Feartech @agrajag @smcpipint
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.
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.
I don't use this new section with my current 0.63 build. Since no one says there are benefits, I didn't take time to even try.
 
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 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.
 
Last edited:
Thank you very much! You help me because I don't know how I can obtain this info !!
But I have two questions
First : before set CustomMemory to YES, Maximum Capacity is 64 GB. And after set CustomMemory to YES and set 68719476736 in Maximum Capacity, dmidecode said is 0 KB. Do you know why ?

Second : What is TypeDetail ? Somebody know why it set to 128 for bit-7? How it work ? What are other values? How can I set Bit 14 — Unbuffered (unregistered) ?

For now, it work like a charm and is just esthetic. But If Somebody can help me it what awesome
Thank you all
 
Thank you very much! You help me because I don't know how I can obtain this info !!
But I have two questions
First : before set CustomMemory to YES, Maximum Capacity is 64 GB. And after set CustomMemory to YES and set 68719476736 in Maximum Capacity, dmidecode said is 0 KB. Do you know why ?

Second : What is TypeDetail ? Somebody know why it set to 128 for bit-7? How it work ? What are other values? How can I set Bit 14 — Unbuffered (unregistered) ?

For now, it work like a charm and is just esthetic. But If Somebody can help me it what awesome
Thank you all
From OC 0.6.3 manual:

8. TypeDetail
Type: plist integer, 16-bit
Failsafe: 0x4
SMBIOS: Memory Device (Type 17) — Type Detail Description: Specifies additional memory type information.
• Bit 0 — Reserved, set to 0
• Bit 1 — Other
• Bit 2 — Unknown
• Bit 7 — Synchronous
• Bit 13 — Registered (buffered)
• Bit 14 — Unbuffered (unregistered)

Somewhere I read and now I can't find that this values are assigned to the highest number with that number of bytes. For example, if I have synchronous memory it corresponds bit 7 and the highest number with 7 bits is 127. The general formula is 2 ^ n-1 where n is the number of bits. For 7 bits, 2 ^ 7 = 128-1 = 127. But I say this with reservations because I cannot find the site where I read it.

About max capacity set to 0, I don’t know what to say, in my system dmicode shows the right value.
 
From OC 0.6.3 manual:

8. TypeDetail
Type: plist integer, 16-bit
Failsafe: 0x4
SMBIOS: Memory Device (Type 17) — Type Detail Description: Specifies additional memory type information.
• Bit 0 — Reserved, set to 0
• Bit 1 — Other
• Bit 2 — Unknown
• Bit 7 — Synchronous
• Bit 13 — Registered (buffered)
• Bit 14 — Unbuffered (unregistered)

Somewhere I read and now I can't find that this values are assigned to the highest number with that number of bytes. For example, if I have synchronous memory it corresponds bit 7 and the highest number with 7 bits is 127. The general formula is 2 ^ n-1 where n is the number of bits. For 7 bits, 2 ^ 7 = 128-1 = 127. But I say this with reservations because I cannot find the site where I read it.

About max capacity set to 0, I don’t know what to say, in my system dmicode shows the right value.
Whaoouuu Nice !!! It work!
I don't know why but it work. I try to set for 14 bits, 2^14=16384 and now dmidecode said Unbuffered (Unregistered).
I try 2^21=2097152 for 7+14 because my original detail type is Synchronous Unbuffered (Unregistered). I thinks it like some other setting (i.e ScanPolicy where we juste need to additional some value) but not work (Type Detail: None)
But for now I let to bit -7 because it work and I understand a little better how it works :clap:
 
Whaoouuu Nice !!! It work!
I don't know why but it work. I try to set for 14 bits, 2^14=16384 and now dmidecode said Unbuffered (Unregistered)...
But remember that in theory it's 2^14=16384-1=16383 because order starts from 0 but we starts count from 1.
 
Other way for DetailType, I type "wmic MemoryChip get BankLabel, Capacity, MemoryType, TypeDetail, Speed, Tag" in Administrator command prompt on Windows 10 Partition and obtain value 16512
Now I see Synchronous Unbuffered (Unregistered) in OSX like CustomMemory set to NO ;)

Explanation : 16512 = 16384 + 128 = 2^14 + 2^7 In my first try I made a mistake by adding the bits (14 + 7 = 21) instead of adding the values 2^X.
Thank you for all your help !!

Note: I do not substrat 1 to value (16384-1=16383 and 128-1=127) because 16510 show me TypeDetail : Other Unknown Fast-paged Static Column Pseudo-static RAMBus Unbuffered (Unregistered) instead Synchronous Unbuffered (Unregistered) with 16512 ^^
 
Status
Not open for further replies.
Back
Top