Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

What are the lines after this? It's probably that you have DDR4 and it is not reading from the first page of the SPD for that module. So it gets a weird value, says that and attempts to set the page to the first one, I'm assuming it then determines your memory fine after that?

 

 

 

No. I couldn't even get it to work on some macs, lol.

I apianti  :)

I think It works with Deploy Studio ?

Also imagr, CasperNetInstallCreator ?

I tried 5 or 6 years ago, I let go of it I could be discouraged, I did not know much about Mac

If Clover could integrate Booting the Net boot install it would be a big plus with lots of fun

Link to comment
Share on other sites

What are the lines after this? It's probably that you have DDR4 and it is not reading from the first page of the SPD for that module. So it gets a weird value, says that and attempts to set the page to the first one, I'm assuming it then determines your memory fine after that?

 === [ ScanSPD ] ===========================================
0:567  0:000  SMBus device : 8086 A123 class=0C0500 status=Success
0:567  0:000  SMBus CmdReg: 0x3
0:567  0:000  Scanning SMBus [8086:A123], mmio: 0xF7F4A004, ioport: 0xF000, hostc: 0x11
0:567  0:000  Slots to scan [8]...
0:567  0:000  SPD[1]: Got invalid type 0 @0x51. Will set page and retry.
0:568  0:000  SPD[1]: Type 12 @0x51
0:586  0:017  Unknown vendor bank=0x83 code=0x13
0:586  0:000  XMP Profile1: 7*125 -42 ns
0:586  0:000  Found module with XMP version 2.0
0:586  0:000  DDR speed 2132MHz
0:586  0:000  Slot: 1 Type 26 8192MB 2132MHz Vendor=NoName PartNo=CL16-16-16D4-2400 SerialNo=0000000000000000
0:586  0:000  SPD[3]: Type 12 @0x53
0:604  0:017  Unknown vendor bank=0x83 code=0x13
0:604  0:000  XMP Profile1: 7*125 -42 ns
0:604  0:000  Found module with XMP version 2.0
0:604  0:000  DDR speed 2132MHz
0:604  0:000  Slot: 3 Type 26 8192MB 2132MHz Vendor=NoName PartNo=CL16-16-16D4-2400 SerialNo=0000000000000000
Link to comment
Share on other sites

 

 === [ ScanSPD ] ===========================================
0:567  0:000  SMBus device : 8086 A123 class=0C0500 status=Success
0:567  0:000  SMBus CmdReg: 0x3
0:567  0:000  Scanning SMBus [8086:A123], mmio: 0xF7F4A004, ioport: 0xF000, hostc: 0x11
0:567  0:000  Slots to scan [8]...
0:567  0:000  SPD[1]: Got invalid type 0 @0x51. Will set page and retry.
0:568  0:000  SPD[1]: Type 12 @0x51
0:586  0:017  Unknown vendor bank=0x83 code=0x13
0:586  0:000  XMP Profile1: 7*125 -42 ns
0:586  0:000  Found module with XMP version 2.0
0:586  0:000  DDR speed 2132MHz
0:586  0:000  Slot: 1 Type 26 8192MB 2132MHz Vendor=NoName PartNo=CL16-16-16D4-2400 SerialNo=0000000000000000
0:586  0:000  SPD[3]: Type 12 @0x53
0:604  0:017  Unknown vendor bank=0x83 code=0x13
0:604  0:000  XMP Profile1: 7*125 -42 ns
0:604  0:000  Found module with XMP version 2.0
0:604  0:000  DDR speed 2132MHz
0:604  0:000  Slot: 3 Type 26 8192MB 2132MHz Vendor=NoName PartNo=CL16-16-16D4-2400 SerialNo=0000000000000000

 

Looks fine except for the bank number for the vendor. The bank number is 0x83 but the code expects 3 because it does not take into account that the most significant bit is an odd parity bit.

 

The code in file spd.c for DDR3 masks off the parity bit. Maybe the DDR4 code should do the same. Maybe both the DDR3 and DDR4 code should check the parity first and at least give an error message if it's wrong, then mask off the parity bit:

UINT8 parity = bank;
UINT8 testbit = bank;
for (i=6; i >= 0; i--) { parity ^= (testbit <<= 1); }
if ( (parity & 0x80) == 0 ) {
    DBG("Bad parity bank=0x%2X code=0x%2X\n", bank, code);
}
bank &= 0x7f;

Bank 3, code 0x13 is manufacturer "Geil". Is that correct for your ram?

 

How does this SPD data compare to the "Get Smbios" part of the log? Is there a valid manufacturer name there?

  • Like 2
Link to comment
Share on other sites

Looks fine except for the bank number for the vendor. The bank number is 0x83 but the code expects 3 because it does not take into account that the most significant bit is an odd parity bit.

 

The code in file spd.c for DDR3 masks off the parity bit. Maybe the DDR4 code should do the same. Maybe both the DDR3 and DDR4 code should check the parity first and at least give an error message if it's wrong, then mask off the parity bit:

UINT8 parity = bank;
UINT8 testbit = bank;
for (i=6; i >= 0; i--) { parity ^= (testbit <<= 1); }
if ( (parity & 0x80) == 0 ) {
    DBG("Bad parity bank=0x%2X code=0x%2X\n", bank, code);
}
bank &= 0x7f;
Bank 3, code 0x13 is manufacturer "Geil". Is that correct for your ram?

 

How does this SPD data compare to the "Get Smbios" part of the log? Is there a valid manufacturer name there?

 

yes is GEIL manufacture 

 

will try to added it to spd.c and test thx

0:100  0:000  === [ Get Smbios ] ========================================
0:100  0:000  Type 16 Index = 0
0:100  0:000  Total Memory Slots Count = 4
0:100  0:000  Type 17 Index = 0
0:100  0:000  Ignoring insane frequency value 0MHz
0:100  0:000  SmbiosTable.Type17->Speed = 0MHz
0:100  0:000  SmbiosTable.Type17->Size = 0MB
0:100  0:000  SmbiosTable.Type17->Bank/Device = BANK 0 DIMM_A1
0:100  0:000  SmbiosTable.Type17->Vendor = <null string>
0:100  0:000  SmbiosTable.Type17->SerialNumber = <null string>
0:100  0:000  SmbiosTable.Type17->PartNumber = <null string>
0:100  0:000  Type 17 Index = 1
0:100  0:000  SmbiosTable.Type17->Speed = 2400MHz
0:100  0:000  SmbiosTable.Type17->Size = 8192MB
0:100  0:000  SmbiosTable.Type17->Bank/Device = BANK 1 DIMM_A2
0:100  0:000  SmbiosTable.Type17->Vendor = GEIL
0:100  0:000  SmbiosTable.Type17->SerialNumber = 00000000
0:100  0:000  SmbiosTable.Type17->PartNumber = CL16-16-16 D4-2400  
0:100  0:000  Type 17 Index = 2
0:100  0:000  Ignoring insane frequency value 0MHz
0:100  0:000  SmbiosTable.Type17->Speed = 0MHz
0:100  0:000  SmbiosTable.Type17->Size = 0MB
0:100  0:000  SmbiosTable.Type17->Bank/Device = BANK 2 DIMM_B1
0:100  0:000  SmbiosTable.Type17->Vendor = <null string>
0:100  0:000  SmbiosTable.Type17->SerialNumber = <null string>
0:100  0:000  SmbiosTable.Type17->PartNumber = <null string>
0:100  0:000  Type 17 Index = 3
0:100  0:000  SmbiosTable.Type17->Speed = 2400MHz
0:100  0:000  SmbiosTable.Type17->Size = 8192MB
0:100  0:000  SmbiosTable.Type17->Bank/Device = BANK 3 DIMM_B2
0:100  0:000  SmbiosTable.Type17->Vendor = GEIL
0:100  0:000  SmbiosTable.Type17->SerialNumber = 00000000
0:100  0:000  SmbiosTable.Type17->PartNumber = CL16-16-16 D4-2400  
Link to comment
Share on other sites

Feature request: Fix brightness range (max brightness) on 10.12.4+ (tested on HD3000)

         

           OperationRegion (IGD5, PCI_Config, Zero, 0x14)            Field (IGD5, AnyAcc, NoLock, Preserve)

            {
                Offset (0x10), 
                BAR1,   32
            }


            OperationRegion (RMB1, SystemMemory, (BAR1 & 0xFFFFFFFFFFFFFFF0), 0x000E1184)
            Field (RMB1, AnyAcc, Lock, Preserve)
            {
                Offset (0xC8250), 
                LEVW,   32, 
                LEVX,   32
            }


            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                LEVX = 0x07100000
            }

 

 

Setting LEVX to 1007 (max brightness for Sandy Bridge) gives me full range of brightness using AppleBacklight.kext without having to binary patch. I think this could be implemented the same way as SetIntelBacklight (which doesn't fully work for me BTW, breaks brightness slider).

 

Hope more people find this useful.

 

 

Link to comment
Share on other sites

Feature request: Fix brightness range (max brightness) on 10.12.4+ (tested on HD3000)

         

 

Setting LEVX to 1007 (max brightness for Sandy Bridge) gives me full range of brightness using AppleBacklight.kext without having to binary patch. I think this could be implemented the same way as SetIntelBacklight (which doesn't fully work for me BTW, breaks brightness slider).

 

Hope more people find this useful.

Note that this is fixed with my SSDT-PNLF.aml.

(other fixes needed too: AppleBacklightInjector.kext + AppleBacklight patch)

Link to comment
Share on other sites

Note that this is fixed with my SSDT-PNLF.aml.(other fixes needed too: AppleBacklightInjector.kext + AppleBacklight patch)

I only have the above code under igpu in DSDT and that gives me full brightness range.

Link to comment
Share on other sites

I only have the above code under igpu in DSDT and that gives me full brightness range.

You will not have correct brightness levels without the appropriate data for AppleBacklight.kext.

'Default' (look in ioreg under PNLF->AppleIntelPanelA) will get you close, but not perfect.

And a side effect/feature of making a match, is that you can customize the levels.

Another thing to note: The code required is different for Haswell and later because the PWM registers are laid out differently, and the PWMMax used is also different (actually depends on ig-platform-id in use).

Link to comment
Share on other sites

Feature request: Fix brightness range (max brightness) on 10.12.4+ (tested on HD3000)

         

 

Setting LEVX to 1007 (max brightness for Sandy Bridge) gives me full range of brightness using AppleBacklight.kext without having to binary patch. I think this could be implemented the same way as SetIntelBacklight (which doesn't fully work for me BTW, breaks brightness slider).

 

Hope more people find this useful.

I have to switch off this option too, it breaks brightness (Dell E6430 with Ivy).

I think your proposition can be applied as new option SetIntelMaxBacklight.

 

In my case brightness works with default clover FIX_PNLF. No new kexts.

In system I did the trick:

insert USB keyboard.

Control Panel -> Keyboard -> Shotcuts -> Screen (it appears due to USB keyboard). Thanks to Andrey1970.

and set Reduce brightness F1, Increase F2. Other key-combinations are not working.

  • Like 3
Link to comment
Share on other sites

In my case brightness works with default clover FIX_PNLF. No new kexts.

Full brightness range requires patching AppleBacklight.kext Info.plist or an injector (like I use).

You will not get the lower levels if you match on 'Default'.

  • Like 1
Link to comment
Share on other sites

Now i have a suggestion feature for kext load by clover.

 

Could we add an list in clover boot GUI to select or cancel one or more kext.

 

It is not just related with kext injection but also have good effect in update system.

 

Sometimes when i update osx it shows kernel panic and i find the kext cause it but i must use such as PE to delete this kext to make me update successfully.

 

If we have this list option can cancel some kext injection it will be more convenient for us to avoid some strange kernel panic which related to some unstable or incompatible kexts.

 

Thanks.

 

 

从我的 iPhone 发送,使用 Tapatalk

Link to comment
Share on other sites

Now i have a suggestion feature for kext load by clover.

 

Could we add an list in clover boot GUI to select or cancel one or more kext.

 

It is not just related with kext injection but also have good effect in update system.

 

Sometimes when i update osx it shows kernel panic and i find the kext cause it but i must use such as PE to delete this kext to make me update successfully.

 

If we have this list option can cancel some kext injection it will be more convenient for us to avoid some strange kernel panic which related to some unstable or incompatible kexts.

 

Thanks.

 

 

从我的 iPhone 发送,使用 Tapatalk

I also think about this menu. Should be made.

Temporary you can use Shell provided with Clover to delete or move kexts from Clover folders.

fs0:>rm -r EFI\CLOVER\kexts\Other\Bad.kext

  • Like 4
Link to comment
Share on other sites

Looks fine except for the bank number for the vendor. The bank number is 0x83 but the code expects 3 because it does not take into account that the most significant bit is an odd parity bit.

 

The code in file spd.c for DDR3 masks off the parity bit. Maybe the DDR4 code should do the same. Maybe both the DDR3 and DDR4 code should check the parity first and at least give an error message if it's wrong, then mask off the parity bit:

UINT8 parity = bank;
UINT8 testbit = bank;
for (i=6; i >= 0; i--) { parity ^= (testbit <<= 1); }
if ( (parity & 0x80) == 0 ) {
    DBG("Bad parity bank=0x%2X code=0x%2X\n", bank, code);
}
bank &= 0x7f;
Bank 3, code 0x13 is manufacturer "Geil". Is that correct for your ram?

 

How does this SPD data compare to the "Get Smbios" part of the log? Is there a valid manufacturer name there?

 

Thanks for the proposition. I committed it to 4193 and want to see tests.

Full brightness range requires patching AppleBacklight.kext Info.plist or an injector (like I use).

You will not get the lower levels if you match on 'Default'.

May be, but my simple method is enough for me.

Feature request: Fix brightness range (max brightness) on 10.12.4+ (tested on HD3000)

         

 

Setting LEVX to 1007 (max brightness for Sandy Bridge) gives me full range of brightness using AppleBacklight.kext without having to binary patch. I think this could be implemented the same way as SetIntelBacklight (which doesn't fully work for me BTW, breaks brightness slider).

 

Hope more people find this useful.

I will implement this but make please more accurate for the value

0x07100000

or

0x0710

or

or

0x1007

  • Like 2
Link to comment
Share on other sites

Sometimes my GPU fails, mainly on coldboot. I have to make a restart to get the nvidiawebdriwers to work.

 I am using Lilu and NvidiaFixup kexts, and I use iMac 17,1 and 18,3 smbioses

 

 

2017-09-06 07:10:47.897014+0200  localhost kernel[0]: (NVDAStartupWeb) <NVDAStartupWeb`NVDAStartupWeb::probe(IOService*, int*)> NVDAStartupWeb: ERROR: failed to find NVRAM registry entry

 

 

<key>nvda_drv</key>
<data>
MQA=
</data>

 

The nvram key / value pair for the webdrivrs are always present, what could be the problem?

Link to comment
Share on other sites

 

Thank you very much. Saved me a lot of hard time :)

 

Thanks for the proposition. I committed it to 4193 and want to see tests.

May be, but my simple method is enough for me.

I will implement this but make please more accurate for the value

0x07100000

or

0x0710

or

<1007>

or

0x1007

 

0x07100000 is correct. (at least for Sandy/Ivy, newer iGPUs might need other values)

 

Just tested build 4194 with SetIntelMaxBacklight=True and it works perfectly. I get full range of brightness.  :D

  • Like 1
Link to comment
Share on other sites

Thank you very much. Saved me a lot of hard time :)

 

 

0x07100000 is correct. (at least for Sandy/Ivy, newer iGPUs might need other values)

 

Just tested build 4194 with SetIntelMaxBacklight=True and it works perfectly. I get full range of brightness.  :D

Nice.

Can you find Intel datasheet for this setting?

Link to comment
Share on other sites

Thank you very much. Saved me a lot of hard time :)

 

 

0x07100000 is correct. (at least for Sandy/Ivy, newer iGPUs might need other values)

 

Just tested build 4194 with SetIntelMaxBacklight=True and it works perfectly. I get full range of brightness.  :D

Where is this option? SetIntelMaxBacklight=True ?

Link to comment
Share on other sites

Thanks for the proposition. I committed it to 4193 and want to see tests.

I tested SavageAUS's build 4194 and compared my debug log before and after. The output for ScanSPD is unchanged for me because my ram is DDR4 with vendor "G Skill Intl" which is from bank 4 in memvendors.h, which has odd parity bit set to 0, so it doesn't have the problem that vendors from bank 0, 3, 5, 6, and 9 have.

 

truesoldier should see an improvement in ScanSPD output because he has "Geil" ram (bank 3) which has the odd parity bit set.

  • Like 1
Link to comment
Share on other sites

Thank you very much. Saved me a lot of hard time :)

 

 

0x07100000 is correct. (at least for Sandy/Ivy, newer iGPUs might need other values)

 

Just tested build 4194 with SetIntelMaxBacklight=True and it works perfectly. I get full range of brightness.  :D

Probably it should resolve old problem

kernel[0]: IG: Invalid firmware max backlight setting

:)

  • Like 1
Link to comment
Share on other sites

Yeah that's what I thought, so I did it on my Haswell laptop before and it made no difference with my backlight.

 

Sent from my SM-G930F using Tapatalk

 

I wasn't sure that the max brightness issue affected newer models.

 

Anyway, for Haswell and Broadwell, LEVX should be 0x0AD90000 and Skylake and Kabylake should be 0x056C0000.

 

Perhaps this patch should be dynamic according to device id / CPU model. Or maybe customizable in config.plist

  • Like 2
Link to comment
Share on other sites

×
×
  • Create New...