**********************
FSPD YOK DSDT.aml - Google Drive
FSPD HARİÇ DİĞERLERİNİ DÜZENLEDİM. Batarya göstergesi normal çalışmalı. Kendin derlemek istersen altta yama kodlarını görürsün
yamaları tek tek kopyala yapıştır altta değişiklik olmassa deyimleri birleştir sonra aralarını birer boşluk vererek aç. Ufak hatalar çıkarsa deneme yap. dsdt.aml yi gereken yere yapıştır.
aç kapa gösterge çalışmalı çalışmazsa
sonra terminalden
ioreg -rn AppleSmartBattery
komutu ver hata sebebine bak.
SİZİN DSDT İÇİN
**********************genel görünüm
Name (BATO, Zero)
Name (BATF, 0xC0)
OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
Field (ERAM, ByteAcc, NoLock, Preserve)
{
FSPD, 16, (ÇOK SORUNLU KISIM)
DSCP, 16,
LACP, 16,
DSVG, 16,
MCUR, 16,
MBRM, 16,
MBCV, 16,
BANA, 64,
VERN, 32
}
DEĞİŞKEN ADI
| DEĞER
| KULLANIMI
| SATIR NO
|
FSPD
| 16
| | |
| CreateWordField (BUFF, 0x14, FSPD)
| 2477
| |
DSCP
| 16
| | 3251
|
| | Store (^^PCI0.LPCB.EC0.DSCP, Index (PBIF, One))
| 668
|
| | Store (Divide (^^PCI0.LPCB.EC0.DSCP, 0x0A, ), Index (PBIF, 0x05))
| 675
|
| | Store (Divide (^^PCI0.LPCB.EC0.DSCP, 0x64, ), Index (PBIF, 0x06))
| 676
|
| | If (LLess (^^PCI0.LPCB.EC0.DSCP, 0x1770))
| 678
|
| | If (LLess (^^PCI0.LPCB.EC0.DSCP, 0x0BB8))
| 683
|
| | Add (Divide (^^PCI0.LPCB.EC0.DSCP, 0x32, ), ^^PCI0.LPCB.EC0.MBRM, Local5)
| 712
|
LACP
| 16
| | 3252
|
| | Store (^^PCI0.LPCB.EC0.LACP, Index (PBIF, 0x02))
| 669
|
| | Store (^^PCI0.LPCB.EC0.LACP, Local5)
| 671
|
DSVG
| 16
| | 3253
|
| | Store (^^PCI0.LPCB.EC0.DSVG, Index (PBIF, 0x04))
| 670
|
MCUR
| 16
| | 3265
|
| | Store (^^PCI0.LPCB.EC0.MCUR, Local5)
| 707
|
MBRM
| 16
| | 3266
|
| | If (LEqual (^^PCI0.LPCB.EC0.MBRM, Zero))
| 693
|
| | Store (^^PCI0.LPCB.EC0.MBRM, Local5)
| 709
|
| | Add (Divide (^^PCI0.LPCB.EC0.DSCP, 0x32, ), ^^PCI0.LPCB.EC0.MBRM, Local5)
| 712
|
MBCV
| 16
| | 3267
|
| | Store (^^PCI0.LPCB.EC0.MBCV, Index (PBST, 0x03))
| 725
|
BANA
| 64
| | 3313
|
| | Store (^^PCI0.LPCB.EC0.BANA, Index (PBIF, 0x0C))
| 688
|
| | Store (Zero, ^^PCI0.LPCB.EC0.BANA)
| 738
|
VERN
| 32
| | 3337
|
| | Store (^^EC0.VERN, Local0)
| 5026
|
| | Store (^^EC0.VERN, Local1)
| 5575
|
[TBODY]
[/TBODY]
YAMALARI MACIASL DEN KULLANIN
#######################################################
# 16 bitlik Basit dönüşümler için B1B2 METODU kullanılacak
into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n
end;
#######################################################
FSPD Yİ yamalamadım
#######################################################
//DSCP
into device label EC0 code_regex DSCP
,\s+16, replace_matched begin SCP0,8,SCP1,8, end;
into_all method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.DSCP, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SCP0, ^^PCI0.LPCB.EC0.SCP1), end;
into_all method label UPBS
code_regex \^\^PCI0\.LPCB\.EC0\.DSCP, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SCP0, ^^PCI0.LPCB.EC0.SCP1), end;
//LACP
into device label EC0 code_regex LACP
,\s+16, replace_matched begin ACP0,8,ACP1,8, end;
into_all method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.LACP
, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.ACP0, ^^PCI0.LPCB.EC0.ACP1), end;
//DSVG
into device label EC0 code_regex DSVG
,\s+16, replace_matched begin SVG
0,8, SVG
1,8, end;
into_all method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.DSVG
, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SVG
0, ^^PCI0.LPCB.EC0.SVG
1), end;
//MCUR
into device label EC0 code_regex MCUR
,\s+16, replace_matched begin CUR
0,8, CUR
1,8, end;
into_all method label UPBS code_regex \^\^PCI0\.LPCB\.EC0\.MCUR
, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.SVG
0, ^^PCI0.LPCB.EC0.SVG
1), end;
//MBRM
into device label EC0 code_regex MBRM
,\s+16, replace_matched begin BRM
0,8, BRM
1,8, end;
into_all method label UPBS code_regex \^\^PCI0\.LPCB\.EC0\.MBRM
, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.BRM
0, ^^PCI0.LPCB.EC0.BRM
1), end;
//MBCV 16 BIT
into device label EC0 code_regex MBCV
,\s+16, replace_matched begin BCV
0,8, BCV
1,8, end;
into_all method label UPBS code_regex \^\^PCI0\.LPCB\.EC0\.MBCV
, replaceall_matched begin B1B2 (^^PCI0.LPCB.EC0.BCV
0, ^^PCI0.LPCB.EC0.BCV
1), end;
//BANA 64 bit
####################################################### BANA
# EC0 register deklerasyonlarını 64-bit den 8-bit e çevirelim
# 264 de fazla büyük oldu bu 8x8= 64 YANİ 8 tane yeni isim
# oluşturalım
into device label EC0 code_regex BANA,\s+(64), replace_matched begin AN00,8,AN01,8, AN02,8, AN03,8,AN04,8, AN05,8, AN06,8, AN07,8,
end;
####################################################### BANA
####################################################### BANA
# BUFFER YÖNTEMİ
# 64=8x8
# 8 onluk sayısı = 08 —> 16 lık sayı sisteminde
# yani 8 yer için Buffer(0x08) yapmalıyız
into device label EC0 insert
begin
Method (ANAX, 0, Serialized)\n
{\n
Name (TEMP, Buffer(0x08) { })\n
Store (AN00, Index(TEMP, 0x00))\n
Store (AN01, Index(TEMP, 0x01))\n
Store (AN02, Index(TEMP, 0x02))\n
Store (AN03, Index(TEMP, 0x03))\n
Store (AN04, Index(TEMP, 0x04))\n
Store (AN05, Index(TEMP, 0x05))\n
Store (AN06, Index(TEMP, 0x06))\n
Store (AN07, Index(TEMP, 0x07))\n
Return (TEMP)\n
}\n
end;
#######################################################
#Method (UPBI, 0, NotSerialized)
#............
#Store (^^PCI0.LPCB.EC0.BANA, Index (PBIF, 0x0C))
#
####################################################### BANA
#
into method label UPBI code_regex \^\^PCI0\.LPCB\.EC0\.BANA, replaceall_matched begin ^^PCI0.LPCB.EC0.ANAX(), end;
####################################################### BANA
####################################################### BANA
#
into method label IVBI code_regex \^\^PCI0\.LPCB\.EC0\.BANA replaceall_matched
begin
^^PCI0.LPCB.EC0.ANAX() end;
####################################################### BANA
//B1B4 METOT
into method label B1B4 remove_entry; into definitionblock code_regex . insert begin Method (B1B4, 4, NotSerialized)\n {\n Store(Arg3, Local0)\n Or(Arg2, ShiftLeft(Local0, 8), Local0)\n Or(Arg1, ShiftLeft(Local0, 8), Local0)\n Or(Arg0, ShiftLeft(Local0, 8), Local0)\n Return(Local0)\n }\n end;
//VERN 32 bit
# 32-bit registers
into device label
EC0 code_regex VERN,\s+32 replace_matched begin ERN0,8, ERN1,8, ERN2,8, ERN3,8 end;
# fix 32-bit methods
into_all method label WMAB
code_regex \^\^EC0\.VERN
, replaceall_matched begin B1B4(^^EC0.ERN
0, ^^EC0.ERN
1, ^^EC0.ERN
2, ^^EC0.ERN
3), end;
# fix 32-bit methods
into_all method label WMBB
code_regex \^\^EC0\.VERN
, replaceall_matched begin B1B4(^^EC0.ERN
0, ^^EC0.ERN
1, ^^EC0.ERN
2, ^^EC0.ERN
3), end;