ASUS S56CM / K56CM Bios Modding - I'm doing this right?

Hi guys, I’ve been “watching” this good forum for a long time, but I decided to register only today (08/01/2015) before trying to flash my first bios :smiley:

So… this is my “system”:
- Asus S56CM-XX0098H ultrabook (Usually ASUS put this model under K56CM and not S56CM)
- HM76 Express Chipset
- CPU i7-3517U
- HD 4000 ( VEN_8086&DEV_0166 )
- Nvidia GT635M ( VEN_10DE&DEV_0DE3 )

This is the last BIOS file from ASUS: K56CMAS209.zip (The zip contains an Ami Aptio capsule file)

Dumps:
- 1° dump (done with fptw.exe -D CURRENT.ROM -BIOS): CURRENT.7z (“common” .rom bios image file NOT and Ami Aptio capsule file)
- 2° dump (done with fptw.exe -D DUMP.ROM): DUMP.7z (Intel image file NOT and Ami Aptio capsule file)
- 3° dump (done with Universal BIOS Backup ToolKit 2.0): AmericanMegatrendsInc.-K56CM.209.7z (“common” .rom bios image file NOT and Ami Aptio capsule file)

I used UBU to mod my bios, based one the last original ASUS bios file “K56CMAS.209” (link above). This is the final output from the program:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 

Select option for update
 
1 Intel RST(e) OROM and EFI SataDriver
OROM IRST RAID for SATA - 13.1.0.2126
EFI IRST RAUD - Not present
2 Intel OROM VBIOS and EFI GOP Driver
OROM VBIOS Sandy/IvyBridge - 2137
OROM VBIOS Sandy/IvyBridge - 2137
EFI GOP Driver IvyBridge - 3.0.1027
EFI GOP Driver SandyBridge - 2.0.1024
3 LAN OROM PXE and EFI UNDI - Intel, Realtek, BCM, QCA
OROM Realtek PXE - 2.60
! Found EFI Realtek LAN UNDI in GUID 26841BDE-920A-4E7A-9FBE-637F477143A6
7 Update Intel CPU MicroCode SandyBridge/IvyBridge
CPU Microcode 0206A7 - 28
CPU Microcode 0306A9 - 19
9 Look the Version of all UBU modules in VerDID.txt
0 Exit
Press ENTER - Re-Scanning ALL EFI modules.
 
Enter number:
 
 


This is the output with the original file before any modification:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 

Select option for update
 
1 Intel RST(e) OROM and EFI SataDriver
OROM IRST RAID for SATA - 11.5.0.1483
EFI IRST RAUD - Not present
2 Intel OROM VBIOS and EFI GOP Driver
OROM VBIOS Sandy/IvyBridge - 2137
OROM VBIOS Sandy/IvyBridge - 2137
EFI GOP Driver IvyBridge - 3.0.1015
EFI GOP Driver SandyBridge - 2.0.1018
3 LAN OROM PXE and EFI UNDI - Intel, Realtek, BCM, QCA
OROM Realtek PXE - 2.48
! Found EFI Realtek LAN UNDI in GUID 26841BDE-920A-4E7A-9FBE-637F477143A6
7 Update Intel CPU MicroCode SandyBridge/IvyBridge
CPU Microcode 0206A7 - 28
CPU Microcode 0306A9 - 15
9 Look the Version of all UBU modules in VerDID.txt
0 Exit
Press ENTER - Re-Scanning ALL EFI modules.
 
Enter number:
 
 


I've done this right?

I've chosen the 13.1.0.2126 version (and not the last one 13.5.0.2164) of iRST(e) because I read that this version provide the best performance with my intel chipser serie (7).

I've chosen to update only the keep the EFI GOP Drivers and kept the VBIOS oprom to v2137 because I read that the newest version 2170 may be incompatible with my hardware, is that true?

"! Found EFI Realtek LAN UNDI in GUID 26841BDE-920A-4E7A-9FBE-637F477143A6" what this actually means? Btw I've updated the Realtek OROM to the last version (2.60).

When I've chosen to update the intel microcode a new prompt appear with this output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 

+-----------------------------------------------------------------------------+
| MMTOOL 4.50.0023 |
| Copyright (c)2010 American Megatrends, Inc. |
+-----------------------------------------------------------------------------+
| CPU Patch Information |
+-----------------------------------------------------------------------------+
|No| MicroCodeID |PlatformType| CPUID | Update Rev. |Date(YYYY/MM/DD)| Size |
+--+-------------+------------+-------+-------------+----------------+--------+
|01| 0126A915 | 12 | 06A9 | 15 | 2012/08/07 |00002C00|
| | | | | | | |
+-----------------------------------------------------------------------------+
| Total Patch Size: 00002C00 |
+-----------------------------------------------------------------------------+
 
 

After that I select the 2° options: "2 - Update CPU MicroCode SandyBridge 6A7-28/IvyBridge 6A9-19 (For Overclokers)"
THe same winddow appear but know the output is this:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 

+-----------------------------------------------------------------------------+
| MMTOOL 4.50.0023 |
| Copyright (c)2010 American Megatrends, Inc. |
+-----------------------------------------------------------------------------+
| CPU Patch Information |
+-----------------------------------------------------------------------------+
|No| MicroCodeID |PlatformType| CPUID | Update Rev. |Date(YYYY/MM/DD)| Size |
+--+-------------+------------+-------+-------------+----------------+--------+
|01| 0126A919 | 12 | 06A9 | 19 | 2013/06/13 |00003000|
| | | | | | | |
|02| 0126A728 | 12 | 06A7 | 28 | 2012/04/24 |00002400|
| | | | | | | |
+-----------------------------------------------------------------------------+
| Total Patch Size: 00005400 |
+-----------------------------------------------------------------------------+
 
 


As you may see from my current Intel ME FW version is 8.1.51.1471, but the asus last bios file have an older version. I've updated it with the FWupdate tool. If I flash the current modded bios will the ME FW version go back to the older one? If yes, is that a problem? Can I solve it by updateing again the ME FW (with FWupdate) after the modded bios flashing?

Are there some other ways to improve my bios? I don't want to look like a n00b... but I was thinking about tweaks, hidden menu and settings, ecc... ecc...

And one last thing, how can I change the version number or the build date? I've already the original 209 bios so the Ez Flash wont flash a modded bios with the same version/build date.

I can provide additional information if you need :D

Thank you for your time and sry for my english (I'm italian).

UPDATE #1:

I'm doing some modification (to the original bios file) with the official AMIBCP.exe v4.53 tool, since this is an offical tool and I'm using the unmodded original file, there should be less problem with the flash? (I'm talking about the fact that UBU is not designed for mobile system).

Btw, I'm using AMIBCP to change some "Access/Use" collumns from "Default" to "USER" to unlock/show more settings. Can this little modification make some damage? The modification only, not the future/possible settings that I might use.

UPDATE #2:

Thank you to Fernando to find the v2170 vBIOS for Mobile System. Just to be sure, a fast way to include it in my BIOS should be to delete "2170.bin" file in this UBU folder "UBU_v190\Modules\VGA\", extract the "8086-0106_v2170.bin" from the archive and rename it in "2170.bin", and use UBU like always?

Another question: If a use AMIBCP to change EVERY "Access/Use" collumns from "Default" to "USER" to unlock/show EVERY settings, can I cause some damage? I know that some settings won't work (like the bluetooht, i do not have it), so I leave them untuched. Again (as update #1) can this modification make some damage? The modification only, not the future/possible settings that I might use.

@ Vento:
Welcome at Win-RAID Forum!

You probably know, that the UBU tool has not been designed for being used with mobile systems like your Ultrabook. Furthermore I am rather unsure, if you will be able to get any modded BIOS successfully flashed into your machine.
That is why I ask you:
Why do you want to modify the BIOS of your ASUS Notebook? Are there any problems, which you expect to be solved by a BIOS modification?

Since there are Forum members, who know more than me about the BIOS modding problems, which may occur with mobile systems, I would like to see a statement given by CodeRush or lordkag.

By the way: It would be a good idea to give your thread a more precise title like "ASUS Notebook K56CM BIOS modding".

Regards
Fernando

Title: done :smiley:

Why I’m doing this?: I’m updating my hardware (new SSD and 7200 RPM HDD) and I’m a “lasest version and performance” maniac, also I’m very interested e curious about BIOS modification. I’m a IT Student and I like to discorver, hack and try new “IT things” since I was 8 (my first PC :smiley: a Pentium 2)

And… another question :smiley: Yes I know that UBU is not designed for mobile system… I’d like to know why :smiley: Whats the main difference between a desktop BIOS and a mobile one? Are there different values placed in different locations? Different srtucture? (I do not know I’m just making assumptions). Could a manual mod with the official AMI tools make a difference?

EDIT by Fernando: Unneeded fully quoted text deleted (to save space within this thread)

Regarding RAID oROM, you should check the excellent AHCI/RAID driver/firmware performance threads written by Fernando which show the differences between various oROMs at specific hardware generations. Other than that he would be able to help you a lot more on the topic in case of further questions.

Regarding ME: If you managed to dump your BIOS using FPT it means that you have an unlocked descriptor and thus you can dump and update your ME as well. If you flash the modded BIOS it will reapply the older ME firmware which then you can safely update to the latest v8.1.52.1496 via FWUpdate tool.

UBU can update some BIOS parts for mobile systems as well as they are the same. That is CPU Microcode, SataDriver (now RAIDDriver), GopDriver, LAN stuff etc. However, Intel vBIOS has a desktop and a mobile version. UBU only includes the latest v2170 desktop firmware. The laptop firmware can be found at a post from Sonix (creator of UBU) in which there is a link with all available (old & new) Intel vBIOSes. Once you acquire the mobile v2170 vBIOS you would need to use Intel BMP tool to change settings according to your own vBIOS. It’s a lot of work if you want to do it safely and instructions by lordkag on how it can be done can be found here. Regarding CPU Microcodes, if your laptop supports overclocking apply the “more overclocking friendly” SB/IVB CPU Microcodes, otherwise the latest is what you are looking for.

For AMI Bios the date, OEM strings, hidden menus etc can be changed using AMIBCP Tool. I don’t have experience with unlocking hidden menus using the AMIBCP Tool. Generally, for BIOS modding the best around here is lordkag by far. He checks the forum more regularly lately so he will probably assist you as well.

Update #2 new questions XD see main post

It is not a good idea to add all your additional questions into the start post.

You can do it, when you prefer to let the UBU tool do the update of the modules within the BIOS.

To Fernando :smiley:

Just to be sure, a fast way to include it in my BIOS should be to delete “2170.bin” file in this UBU folder "UBU_v190\Modules\VGA", extract the “8086-0106_v2170.bin” from the archive and rename it in “2170.bin”, and use UBU like always?

Another question: If a use AMIBCP to change EVERY “Access/Use” collumns from “Default” to “USER” to unlock/show EVERY settings, can I cause some damage? I know that some settings won’t work (like the bluetooht, i do not have it), so I leave them untuched. Again (as update #1) can this modification make some damage? The modification only, not the future/possible settings that I might use.

Yes, that would be the way, if you want to use the UBU tool.

I cannot answer these questions, because I don’t have much experience with the tool AMIBCP.
By the way: Not the modification of the BIOS is risky, the dangerous part begins while flashing the modded BIOS.

Hum… Error: (the image is a link to a larger one)



Sould I try with the GUI win64 version of AFU? Or with another flasher?

File:
- Modded Bios: BIOS.BIN
- Original From ASUS: K56CMAS.209
- Backup: BACK.ROM

Should I create the modded bios from BACK.ROM? (now I’m using the original K56CMAS.209)

Do not base your mod on your dumped BIOS. The stock BIOS has clean nvram and no leftovers. I have personal experience that it could lead to problems otherwise.

Have you tried flashing the stock BIOS with AFU? Only if the stock BIOS shows the same error, I suggest you remove the AMI Capsule header with UEFITool first and try again. Another method would be to use whatever flasher Asus supplied in the first place.

Everything that you do has a risk upon the time of actually flashing the modded BIOS. Double check everything and remember that in case of problems the responsibility lies to the person who wanted the mod in the first place.

You BIOS appears to be unlocked for direct FPT flashing, so you don’t need to play with AFU and take any risks bound to it, good old Intel FPT must be enough.
Please try to make backup using “fpt -bios -d bios.bin” and then write it back using “fpt -bios -w bios.bin”. If FPT refuses to flash BIOS region - it’s protected by BIOSWE/SMMBWP lock and you have to use AFU or hardware SPI flasher to get rid of it, but if it works and reflashes your BIOS, you can flash any mod using FPT then.
Notebook images often contain sensitive individual board data like DMI information, GUIDs, serial numbers and so on, which are absent in BIOS update files, that is why I recommend to modify the dump despite of the possible leftovers mentioned by @plutomaniac. Anyway, you have your full dump linked here, if you manage to brick your system, it can be restored using hardware SPI flasher with ease.

Indeed, I forgot he had the full dumps (BIOS + ME region) so he can also use FPT instead of AFU. According to the dumped BIOS he has a fully unlocked flash descriptor so most probably there won’t be any issues reflashing a modded BIOS.

Regarding leftovers, some months ago I used my own dump (Clevo, HM65, ME7) as the basis of a modded BIOS and this was the result afterwards (if you read the linked topic please keep in mind that I knew a lot less about ME, FPT etc back then, still I don’t know what exactly caused this):



I found out that it had to do with reflashing my dumped ME, not the actual BIOS region. It would happen every time for some reason when restoring BIOS default settings after a successful flash. At the time I asked Prema (you probably know him, excellent Clevo BIOS modder) and he told me that my ME was bricked. It sounds crazy that me own dumped ME was causing this issue but I don’t have any other explanation. Do you have something else to suggest as the source of the problem? That’s why I recommended to not use the dump.

The source is a weird bug in that BIOS, which leads to BootXXXX variables corruption. I don’t know how they managed to make it ME-dependent. You can try to clear NVRAM manually, so the Setup app can recreate all variables correctly in such cases, but it’s clearly a bug.

While waiting for Vento’s reply…

Yeap, probably Clevo messing something up as usual. Prema used to tell me that they have no idea what they are doing most of the time, they just release whatever the tools spit out after making sure it’s not a nuke release and call it a day. In the end, for my released mod I just used the DOS version of FWUpdLcl which means I don’t have to unlock the descriptor using the MESET software before flashing. Funny thing is that even with MESET (this small utility probably does the HDA_SDO pinmod if Clevo implemented traces to pin 1 & 5 or invokes the HMRFPO message before EoP - not sure), AFU refused to flash (didn’t try /GAN) whereas FPT worked. I think FPT does not work with HMRFPO so it’s probably the pinmod.

@Vento

You will need to update VBIOS by hand, firstly because they need specific settings for your laptop, secondly because UBU doesn’t support laptops and it won’t even replace them, since the ID differs.

Realtek LAN UNDI needs to be update by hand, because that GUID is not in UBU modules (laptops have a ton of them) and it is best to preserve the dependencies. Use UEFITool.

I would not use the file provided by AMIBCP for flashing, since they change a lot of things if the image is signed. Just unlock some settings, save as a temp file, extract AMITSE and replace in your good file. Note that some tabs or settings might still remain hidden, so you need to work on Setup module to unlock them. For tabs it is easy, but for fields you need to change some Suppress If statements.

Here I am :smiley: sorry for the dealy :smiley: btw I’ve flashed a bad modded bios but I’ve successfuly recovered my PC (I’m using right now to write this post) with yours fantastic guide [Guide] Recover from failed BIOS flash using Raspberry PI Thanks to all those who contributed to that guide :smiley: I’ve also found something that may be useful to future bios recovery :smiley: (I’ll post them later)

Before attemptiong new flashes I’d like to know if there is a way to avoid soldering wires the bios chip? I do not want to waste 2/3 hours again (the chip is so small!!!) just to solder 8 wires properly xD



Hi.
You can’t programm chip on motherboard. It doesn’t work properly. If you will use hotair soldering station, it takes only few minutes :smiley:

@ hollaback:

Welcome at Win-RAID Forum and thanks for your contribution!

Regards
Dieter (alias Fernando)