Forum RSS Feed Follow @ Twitter Follow On Facebook

Thread Rating:
  • 15 Vote(s) - 3.67 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[-]
Welcome
You have to register before you can post on our site.

Username:


Password:





[-]
Latest Threads
Xeon E3 1280 v5 on MSI H110M Pro-VH
Last Post: Brufff
Today 01:40 PM
» Replies: 3
» Views: 39
[REQUEST] Lenovo Thinkpad X230(i) (G2ETx...
Last Post: Dudu2002
Today 01:01 PM
» Replies: 1291
» Views: 272463
[REQUEST] Lenovo G580 (5ECNxxWW) Whiteli...
Last Post: Strikers
Today 10:22 AM
» Replies: 1982
» Views: 367890
Fujitsu Celsius R930 (D3118-A2) unlocked...
Last Post: smooker
Today 09:18 AM
» Replies: 21
» Views: 3916
[REQUEST] ASUS PN50-E1 miniPC bios unloc...
Last Post: nicolbif
Today 05:31 AM
» Replies: 0
» Views: 49
( REQUEST ) GX531GM BIOS
Last Post: genius239
Today 04:47 AM
» Replies: 1
» Views: 132
[Request] Acer Aspire A317-51-5771 BIOS...
Last Post: Dudu2002
Yesterday 01:57 PM
» Replies: 3
» Views: 174
[REQUEST] Dell Optiplex 3010 BIOS Unlock
Last Post: BumbleBeeChicken
Yesterday 01:05 PM
» Replies: 10
» Views: 193
[REQUEST] Ability to unlock BIOS of Leno...
Last Post: Dudu2002
Yesterday 10:31 AM
» Replies: 1
» Views: 140
[REQUEST] Lenovo Flex 2-14 (A0CNxxWW) Wh...
Last Post: Dudu2002
Yesterday 10:28 AM
» Replies: 266
» Views: 44826
Change BIOS Splash Screen on Aptio 3.x a...
Last Post: 1740
Yesterday 09:29 AM
» Replies: 1
» Views: 992
[SOLVED] Upgrading BIOS on Acer Travelma...
Last Post: backrubs
Yesterday 05:51 AM
» Replies: 21
» Views: 15394
[REQUEST] Lenovo G50-80 (B0CNxxWW) White...
Last Post: BitZone9
Yesterday 05:01 AM
» Replies: 75
» Views: 17006
[REQUEST] Lenovo IdeaPad L340 (BGCNxxWW)...
Last Post: Dudu2002
Yesterday 03:10 AM
» Replies: 20
» Views: 2955
[REQUEST] Lenovo Thinkpad W701ds BIOS Un...
Last Post: Maxinator500
09-25-2021 11:42 PM
» Replies: 10
» Views: 447
[REQUEST] Asus G731GW BIOS Unlock
Last Post: genius239
09-25-2021 11:03 PM
» Replies: 22
» Views: 4023
HP MCP61PM-HM (Nettle2) 5.27 With Unlock...
Last Post: Miciumau
09-25-2021 03:51 PM
» Replies: 848
» Views: 648935
New Members Say Hi Here
Last Post: Sml6397
09-25-2021 01:55 PM
» Replies: 139
» Views: 184256
Acer aspire 7740G Bios Recovery Problems...
Last Post: Sml6397
09-25-2021 01:53 PM
» Replies: 1
» Views: 123
[REQUEST] HP Erica6 AMI bios 8906 vF.03
Last Post: Sml6397
09-25-2021 01:14 PM
» Replies: 10
» Views: 715

[Project] SHE and AHCI BIOS mod for ASUS EeePC 1000H
#1
Smile 
Available mods by Antinomy & Tol Phobos :

ASUS 1000H ACPI BIOS Revision 2204GT (AHCI)
ASUS 1000H ACPI BIOS Revision 2204GTS (AHCI + improved SHE)
ASUS 1000H ACPI BIOS Revision 2204GTX (AHCI + increased SHE ... maybe RAM settings will come later)


-------------------------------------------------
Hello allz.

My 8 years’ old daughter has an ASUS EeePC 1000H for 1.5 year, and she (me to) fells the limits of her computer's performances. That's why I'm working to improve them following two axes:
1) Installation of a SSD (Intel X25-V 40Go is my target)
2) Perpetuate 2Ghz overclocking (tested and validated using EeeCTL and SetFSB)

While working on these 2 axes, I met the limits of default 1000H BIOS on two points:
1) Even if the AHCI is supported by the southbridge ICH7-M, it is not activated and non-actionable in BIOS.
2) Impossible to modify the 'Super Performance Mode' frequency of the SHE (Super Hybrid Engine) which is defined in BIOS, but not accessible.

As I have not found already modded BIOS (but I maybe badly looked), I decided to mod my own one. For that purpose, I was inspired by a similar work made on a 1000HE for a CKFB mod (modification of the frequencies' SHE). I have begun to analyse BIOS 2204 of 1000H and BIOS 1104 of 1000HE to look for sequences of similar code. Bingo ! I found equivalent CKFB + FSBB sequences:

1000H
Code:
Name (CKFB, Package (0x03)
{
Package (0x0A)
{
0xEF,
0x2F,
0x8F,
0x6A,
0xEF,
0x2F,
0x25,
One,
Zero,
0x8F
},

Package (0x0A)
{
0xEF,
0x2F,
0x8F,
0x68,
0xEF,
0x2F,
0x25,
One,
One,
0x8F
},

Package (0x0A)
{
0xEF,
0x2F,
0x8F,
0x68,
0xEF,
0x2F,
0x1C,
Zero,
One,
0x4F
}
})

Method (FSBB, 1, NotSerialized)
{
Store (DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x07)),
Local0)
If (LLess (Arg0, ^^^ATKD.CFVG ()))
{
VOLS (Local0)
}

RCLK ()
If (LEqual (Arg0, Zero))
{
And (RCKB (Zero), 0x9F, Local1)
WCKB (Zero, Local1)
}

WCLK ()
RCLK ()
WCKB (0x11, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x04
)))
WCKB (0x12, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x05
)))
WCKB (0x0F, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x02
)))
WCKB (0x10, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x03
)))
WCLK ()
Sleep (0x0A)
RCLK ()
WCKB (0x0B, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x09
)))
WCKB (0x0C, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x06
)))
WCKB (0x0D, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), Zero
)))
WCKB (0x0E, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), One
)))
WCLK ()
Sleep (0x0A)
RCLK ()
If (LNotEqual (Arg0, Zero))
{
Or (RCKB (Zero), 0x40, Local1)
WCKB (Zero, Local1)
}

WCLK ()
Sleep (0x0A)
Store (DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x07)),
Local0)
If (LGreater (Arg0, ^^^ATKD.CFVG ()))
{
VOLS (Local0)
}

Store (Arg0, FS70)
SNVS (0x2641, Arg0)
}

1000HE
Code:
Name (CKFB, Package (0x03)
{
Package (0x0A)
{
0xEF,
0x2F,
0x8F,
0x6A,
0xEF,
0x2F,
0x25,
One,
Zero,
0x8F
},

Package (0x0A)
{
0xEF,
0x2F,
0x8F,
0x68,
0xEF,
0x2F,
0x25,
One,
One,
0x8F
},

Package (0x0A)
{
0xEF,
0x2F,
0x8F,
0x68,
0xEF,
0x2F,
0x20,
Zero,
One,
0x8F
}
})
Method (FSBB, 1, NotSerialized)
{
Store (DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x07)),
Local0)
If (LLess (Arg0, ^^^ATKD.CFVG ()))
{
VOLS (Local0)
}

RCLK ()
And (RCKB (Zero), 0x9F, Local1)
WCKB (Zero, Local1)
WCLK ()
RCLK ()
WCKB (0x11, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x04
)))
WCKB (0x12, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x05
)))
WCKB (0x0F, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x02
)))
WCKB (0x10, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x03
)))
WCLK ()
Sleep (0x0A)
RCLK ()
WCKB (0x0B, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x09
)))
WCKB (0x0C, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x06
)))
WCKB (0x0D, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), Zero
)))
WCKB (0x0E, DerefOf (Index (DerefOf (Index (CKFB, Arg0)), One
)))
WCLK ()
Sleep (0x0A)
RCLK ()
If (LEqual (Arg0, One))
{
Or (RCKB (Zero), 0x40, Local1)
WCKB (Zero, Local1)
}

WCLK ()
Sleep (0x0A)
Store (DerefOf (Index (DerefOf (Index (CKFB, Arg0)), 0x07)),
Local0)
If (LGreater (Arg0, ^^^ATKD.CFVG ()))
{
VOLS (Local0)
}

Store (Arg0, FS70)
SNVS (0x2622, Arg0)
}

However, 1000H values set into the BIOS seems strange compared to 'Clock Generator' ones read into RW when I witch between SHE modes (S = Super Perf Mode, H = High Perf Mode, P = Power Saving Mode).

   

Even if the code into the BIOS is similar, the logic seems différent ... what do you think about it ?

Thank you in advance for your help

Mine - Lenovo Yoga 2 11 (Baytrail-M) Black, Intel 320 120Go, Intel N 6235, Lenovo ThinkPad Bluetooth, BIOS mod WLAN white list removal.
Daughter A - SONY VAIO S13 SVS1311C5E, Logitech V470, BIOS mod R0142C5 GT650M (850Mhz)
Daughter B - ASUS EeePC 1000H Pink, X25-M 80Go, 2Go, Microsoft 3500, DVD LG-GP08NU10, 1000HE keyboard mod, BIOS mod 2204GTX-01
find
quote
#2
Wow well this ones a little too technical even for me!!!

Will watch this with interest Smile

Admin
find
quote
#3
Hello allz.

(11-28-2010, 05:29 AM)1234s282 Wrote: Wow well this ones a little too technical even for me!!!
Will watch this with interest Smile
I don't know how to take this : do I have to feel flattering or worried ? Confused Let's see it by trying ! Big Grin

So now, here are news from my project.

First, as i was not able to link SetFSB/EeeCTL/SHE modification with CKFB/FSBB code, like for 1000HE, I have tryed to modified another portion of code which is differnt between 1000H and 1000HE : CKFG/FSBA.

Code:
Name (CKFG, Package (0x03)
{
    Package (0x09)
    {
0x6C,
0x32,
0x0F,
0x6E,
Zero,
0x2F,
0x2D,
One,
Zero
    },

    Package (0x09)
    {
0xEF,
0x2F,
0x8F,
0x68,
0xEF,
0x2F,
0x2A,
One,
One
    },

    Package (0x09)
    {
0xEF,
0x2F,
0x8F,
0x68,
Zero,
0x2F,
0x21,
Zero,
One
    }
})
Method (FSBA, 1, NotSerialized)
{
    Store (DerefOf (Index (DerefOf (Index (CKFG, Arg0)), 0x07)),
Local0)
    If (Local0)
    {
VOLS (Local0)
    }

    RCLK ()
    If (LEqual (DerefOf (Index (DerefOf (Index (CKFG, Arg0)), 0x04
)), Zero))
    {
And (RCKB (Zero), 0xBF, Local0)
WCKB (Zero, Local0)
    }
    Else
    {
Or (RCKB (Zero), 0x40, Local0)
WCKB (Zero, Local0)
WCKB (0x11, DerefOf (Index (DerefOf (Index (CKFG, Arg0)), 0x04
)))
WCKB (0x12, DerefOf (Index (DerefOf (Index (CKFG, Arg0)), 0x05
)))
    }

    WCLK ()
    Sleep (0x0A)
    RCLK ()
    WCKB (0x0C, DerefOf (Index (DerefOf (Index (CKFG, Arg0)), 0x06
)))
    WCLK ()
    Sleep (0x0A)
    Store (DerefOf (Index (DerefOf (Index (CKFG, Arg0)), 0x08)),
^^VGA.GFXL)
    Store (DerefOf (Index (DerefOf (Index (CKFG, Arg0)), 0x07)),
Local0)
    If (LEqual (Local0, Zero))
    {
VOLS (Local0)
    }

    Store (Arg0, FS70)
    SNVS (0x2641, Arg0)
}

The 3 packages correspond into this order : Super/High/Power. Seventh value of the package corresponds into RW & SetFSB to the 0x0C byte of PLL Control Registers for Super/High/Power modes.

I have tested manually all the values of 0x0C byte :
   
With this, I am able to modify FSB between 79.2 and 148.8Mhz.

So I have modified a 1000H_2204.ROM file to change Super mode CKFG value with 0x0C byte set to 2F instead of 2A ... and it works !!!

So now, I am able to create a BIOS with a SHE 1786Mhz Super mode and a 950Mhz Power mode.

However, I'm not satisfied. I don't understand why this SHE on 1000H use a PLL byte (0x0C) different from SetFSB and 1000HE ones (0x0F & 0x10). With 0x0C, the up limit is 148.8Mhz, and with 0x0F & 0x10 is higher than 166.6Mhz ...

So now, I try to understand how work and interact these three bytes to be able to modify CKFG/FSBA code to reach my first target : Super=2Ghz/166Mhz|High=1.6Ghz/133Mhz|Power=1.2Ghz/100Mhz

If somebody has information about PLL Register bytes interact, please help me !!!! Heart

Mine - Lenovo Yoga 2 11 (Baytrail-M) Black, Intel 320 120Go, Intel N 6235, Lenovo ThinkPad Bluetooth, BIOS mod WLAN white list removal.
Daughter A - SONY VAIO S13 SVS1311C5E, Logitech V470, BIOS mod R0142C5 GT650M (850Mhz)
Daughter B - ASUS EeePC 1000H Pink, X25-M 80Go, 2Go, Microsoft 3500, DVD LG-GP08NU10, 1000HE keyboard mod, BIOS mod 2204GTX-01
find
quote
#4
Wow, you (I mean the guy who made the original tutorial too) are really freaks inventing a wheel instead of using a ready one. Why doesn't SetFSB make you happy enough?

O.K. let's return. Thanks about the mod, I didn't know how to modify PLL programming in BIOS.

What is the PLL we are talking about, do you know the model? You want to say that the problem is that it's VCO dividers do not directly show up when modifying the values in BIOS, e.g. the HEX values in BIOS are different from what you see when asking VCO registers from the PLL via I2C?
find
quote
#5
Yes, macauman is impresive.

SetFSB doen't not make me happy because is not enought kid friendly (my daughter is 9 years old) ... SHE or eeectl are quite better on this point. However, eectl doesn't work if user is not administrator : not security friendly for a 9 years old kid.

Regarding PLL registry, I have identify 3 bytes which drive the FSB : 0x0C, 0x0F and 0x10. However, I don't understand well the way of driving ... PLL number is ICS9LPR427AGLF. If somebody can help, thx in advance.

Last but not least, I'm working now on AHCI modding. And I would like to know in which BIOS module (as visible in MMTOOL) the BIOS menu is managed. I want to add a line in BIOS menu to manage IDE/AHCI option. This option is absent in 1000H BIOS and exists in 1000HE BIOS : I just want to compare the modules of each to find how to add this line ! Somebody can help ?

Mine - Lenovo Yoga 2 11 (Baytrail-M) Black, Intel 320 120Go, Intel N 6235, Lenovo ThinkPad Bluetooth, BIOS mod WLAN white list removal.
Daughter A - SONY VAIO S13 SVS1311C5E, Logitech V470, BIOS mod R0142C5 GT650M (850Mhz)
Daughter B - ASUS EeePC 1000H Pink, X25-M 80Go, 2Go, Microsoft 3500, DVD LG-GP08NU10, 1000HE keyboard mod, BIOS mod 2204GTX-01
find
quote
#6
Get me your BIOS, the BIOS from 1000HE and I think I'll be able to add the menu that you want. Wink
The menus are in the 1B - main BIOS module, by the way.
find
quote
#7
(01-23-2011, 08:03 PM)Antinomy Wrote: Get me your BIOS, the BIOS from 1000HE and I think I'll be able to add the menu that you want. Wink
The menus are in the 1B - main BIOS module, by the way.

Yes, I have seen it since my last post ... I have replaced (mmtools) 1000H-2204.rom 1B (Single Link Arch BIOS) and 21 (Multi Language) modules by 1000HE-1104.rom ones, and now i can see (amibcp) the AHCI option into the 1000H-2204.rom ... but I don't want to brick my 1000H with such an hybrid BIOS : there are too many differences between 1000H and 1000HE 1B module. So now I'm trying to disassemble 1B module to understand these differences.
What do you think about it ?

However, find joined the two bioses (1000H-2204 & 1000HE-1104) : I will appreciate your contribution if you can add this options ! Big Grin


Mine - Lenovo Yoga 2 11 (Baytrail-M) Black, Intel 320 120Go, Intel N 6235, Lenovo ThinkPad Bluetooth, BIOS mod WLAN white list removal.
Daughter A - SONY VAIO S13 SVS1311C5E, Logitech V470, BIOS mod R0142C5 GT650M (850Mhz)
Daughter B - ASUS EeePC 1000H Pink, X25-M 80Go, 2Go, Microsoft 3500, DVD LG-GP08NU10, 1000HE keyboard mod, BIOS mod 2204GTX-01
find
quote
#8
You don't need to disassemble the BIOS to make what you need Smile

I'll check today.
find
quote
#9
Are using this method ?

Mine - Lenovo Yoga 2 11 (Baytrail-M) Black, Intel 320 120Go, Intel N 6235, Lenovo ThinkPad Bluetooth, BIOS mod WLAN white list removal.
Daughter A - SONY VAIO S13 SVS1311C5E, Logitech V470, BIOS mod R0142C5 GT650M (850Mhz)
Daughter B - ASUS EeePC 1000H Pink, X25-M 80Go, 2Go, Microsoft 3500, DVD LG-GP08NU10, 1000HE keyboard mod, BIOS mod 2204GTX-01
find
quote
#10
Not exactly, but close. The method you've linked to is about adding a blank menu item that doesn't do anything. And then write an assembler routine that will use this CMOS menu. What I'm adding is a menu that is linked to an routine that already exists in the BIOS.
find
quote


Forum Jump:


Users browsing this thread: 7 Guest(s)