07-12-2011, 10:39 AM (This post was last modified: 07-12-2011, 10:40 AM by kizwan.)
Hi Blasku,
If I know AMD CPU Microcode format, I'll help you. Unfortunately I don't know. Anyway, I believe you're in right track. Using a BIOS image from another computer (which already working properly with CPU in question) as a reference is a good idea. I'm here to help you whatever I can.
First task for you; find out how to recover corrupted BIOS on Travelmate 5530G. You can test BIOS recovery on unbricked/working computer. When you know how to recover corrupted BIOS, you can test modified BIOS without fear.
This is BIOS recovery procedure for TravelMate 5530G, taken from the service manual:-
Quote:Steps for BIOS Recovery by Crisis Disk:
Before doing this, one Crisis Disk should be prepared ready in hand. The Crisis Disk could be made by executing the Crisis Disk program in another system with Windows XP OS. Use USB flash drive (e.g. Kingston 4GB) when creating the CRISIS disk.
Follow the steps below:
Power Off the failed system.
Plugged in the Crisis Disk to the failed machine.
In the power-off state, press Fn+Esc and hold them and then press Power Button. The system should be powered on with Crisis BIOS Recovery process. Release the Fn+Esc key when you see indicator on the Crisis disk blinking OR after a couple of seconds (try 10 seconds)
BIOS Boot Block starts to restore the BIOS code from the Crisis disk to BIOS ROM on the failed machine.
If the Crisis flashing process is finished, the system will restart.
If the Crisis Recovery process is finished, the system should be powered on with successful and workable BIOS. Then a person can update the latest version BIOS for this machine by regular BIOS flashing process.
(07-12-2011, 10:39 AM)kizwan Wrote: First task for you; find out how to recover corrupted BIOS on Travelmate 5530G. You can test BIOS recovery on unbricked/working computer. When you know how to recover corrupted BIOS, you can test modified BIOS without fear.
Hi kizwan!
Reminding me of making a CRISIS disk was a very good idea, since I completely forgot about that . I've successfully tested it too, so now I'll be more bold when it comes to tinkering with the BIOS.
I also tried to build a BIOS where I inserted the Sa3650's microcode according to that guide I linked, but I got the "'BIOS.FFV' : unable to read input firmware volume" etc. error. So I might have to do some more research (I remember reading about how in some BIOSes the microcode is compressed, and in others, not).
Thanks for your help !
Posts: 43
Threads: 2
Joined: May 2011
Reputation:
10
07-13-2011, 10:49 AM (This post was last modified: 07-13-2011, 11:10 AM by Blasku.)
Could you guys tell me an MMTool version that actually works ? After yesterday's noobish attempts I now know that I'd need some way to actually extract the microcode and not just the UPDATE0.ROM from the BIOS (as done here).
I've also tried CBROM, but when it's not whining about whether it should be run in DOS or not, I can give the `cbrom whatever.rom /d` command only to wait an eternity for the results (it won't give the prompt back, and I see that the processor is used by cbrom). Usually after 5 minutes I just Ctrl+C the stupid thing.
As with MMTool, with v3.19 I get the "error loading ROM image" error. I've read that v2.22.1 fixes that problem. Well, I don't get the error message anymore with that, it's just that MMTool doesn't load anything even when I tell it to (meaning that the open file dialog is useless). And when I'd extract something from the supposedly loaded ROM image, I get "ROM file is not loaded".
I could just say that it's my Win7 64bit that's causing it, if I hadn't got the same 'results' under WinXP Pro 32bit!
Would be glad if I got a reply from anyone (kizwan? Please?), until then I'll frustrate myself some more .
EDIT: I tried a random BIOS attached in another thread of this forum and MMTool 2.22.1 worked. So that means that the ROM files I have are 'exotic' or something.
Sorry I ahve been so busy o reply to this thread. While I continue to look into the BIOS with the corrected DSDT, I'd recommend meanwhile that you use the Andy P's Phoenix SLIC tool to dump and re-integrate your Phoenix BIOS modules. You should also use Phoenix BIOS Editor for viewing and looking, but probably isn't the safest tool to recompile your BIOS with.
CBROm is for Award BIOSes only
MMTool is for AMI BIOSes only.
Thanks,
TheWiz
Posts: 43
Threads: 2
Joined: May 2011
Reputation:
10
07-13-2011, 03:38 PM (This post was last modified: 07-14-2011, 09:45 AM by Blasku.)
(07-13-2011, 02:53 PM)TheWiz Wrote: Hi Blasku,
Sorry I ahve been so busy o reply to this thread. While I continue to look into the BIOS with the corrected DSDT, I'd recommend meanwhile that you use the Andy P's Phoenix SLIC tool to dump and re-integrate your Phoenix BIOS modules. You should also use Phoenix BIOS Editor for viewing and looking, but probably isn't the safest tool to recompile your BIOS with.
CBROm is for Award BIOSes only
MMTool is for AMI BIOSes only.
Thanks,
TheWiz
Hi!
Indeed, I've just had a revelation not 5 minutes ago that PBE is pure suckage. No matter what modification I make the first time (just replace the original UPDATE0.ROM with the Sa3650 one for example) it builds successfully. If I reopen the ROM that I've just built, modify and unmodify something (ye olde trick), and rebuild => 3 errors in the build log, and they're always the same:
Code:
FI - Integrate Flash Image. Version 0.0.1.8 Jun 20 2006
Copyright (C) 2006 by Phoenix Technologies, Ltd. All Rights Reserved
error : FI240D : 'BIOS.FFV' : unable to read input firmware volume
error : FI2402 : '_BUILD' : unable to read build options file in input firmware volume '00000000-0000-0000-0000-000000000000'
error : FI2408 : could not find boot firmware volume
ROM USAGE REPORT
================
VI - Volume Number VT - Volume Type VN - Volume Name
FI - File Number FT - File Type FN - File Name
VI VT VN
-- ---- -----
FI FT FN START END LENGTH INPUT FILE NAME
-- ------- ------------------------------------ -------- -------- -------- --------------------
VOLUME USAGE SUMMARY
=================
Num Name Used Bytes Free Bytes
--- ----------------- -------------------- -------------------
ROM USAGE SUMMARY
=================
Total Gap Count : 0 gaps
Total Gap Size : 0 (0x0) bytes
Largest Gap Size : 0 (0x0) bytes
Total File Count : 0 files
Total File Size : 0 (0x0) bytes
Largest File Size : 0 (0x0) bytes
3 Errors/0 Warning.
That means that I wouldn't bother with the ROM that I made with the corrected DSDT if I were you, because it's probably incorrect.
Now, the other thing you've said explains why I didn't succeed with those two apps . I'll be sure to check out this SLIC tool that you mention.
Posts: 43
Threads: 2
Joined: May 2011
Reputation:
10
I was a little too enthusiastic about this SLIC tool, so I made some useless edits to my last post that I've reverted since.
Actually, I can't even insert the updated DSDT with this program. I've tried two methods:
"Allow user to modify DSDT" checked => have to overwrite DSDT_NEW.DSL file. Result: "Failed to generate new DSDT table"
"Allow user to modify other modules" checked => replace ACPI00.AML. Result: "Unable to reintegrate ACPI00.AML" because it is about 350 bytes too big.
I'm guessing that the first method should be the best one, at least the second has an understandable reason not to work.
If I manage to figure this out, could anyone give me pointers as to what to do with the UPDATE0.ROM alias _C00.PEI microcode files? I'm supposed to extract them into 2048 byte long .bin files, no? The problem is that google always returns either with something about MMTool or CBROM when I search for "extract phoenix microcode".
Posts: 300
Threads: 5
Joined: Mar 2010
Reputation:
14
07-14-2011, 11:23 AM (This post was last modified: 07-14-2011, 11:31 AM by kizwan.)
The "extract phoenix microcode" search keyword is a bit vague. At least there are Intel & AMD CPU Microcode.
Intel CPU Microcode Update vs. AMD CPU Microcode Update
In _C0x.PEI file, Intel CPU Microcode Updates start from offset 0x18 to end of the file (contain more than one microcode). I would guess AMD CPU Microcode Update start at the same offset too. Without knowing the AMD CPU Microcode Update field descriptions, I unable to tell for sure. Based on this website:-
Code:
Microcode Block Format:
The microcode block consists of a 64-byte header and an 896-byte data area. The processor consumes both the header and data area during an update. The header consists of various fields. The most important ones are:
- Offset 0: 32-bit word for update creation date (e.g. 0x20040602)
- Offset 12: 32-bit checksum: sum of all 32-bit words in the data area
- Offset 24: Low 8 bits of the cpuid (e.g. 0xf48 -> 0x48).
- Offset 28: 4 bytes: 0x01 0xaa 0xaa 0xaa (evidently a reference to (A)MD.)
The microcode blocks are typically padded out to 2048 bytes, just as the Intel format blocks are.
The field descriptions doesn't complete but I checked TM5530G _C00.PEI file, at offset 0x18, the first 4-bytes, it looks like date. When I scroll down, exactly after 2048-bytes (start from 0x18), second Microcode start. The 00s are use to fill the gaps.
To obtain latest AMD CPU Microcode Update, you can get it from here.
If you use my modified BIOS image & you like it, please consider making a donation. Thank you very much. Donate Here
Posts: 43
Threads: 2
Joined: May 2011
Reputation:
10
Wow, thanks! I really wasn't too effective in my google searches lately, I should've taken the effort and searched for AMD microcode specifications or something .
BTW, is injecting your corrected DSDT into the BIOS possible somehow? I'm starting to get the impression that there were too many things added in for Phoenix Tool to reintegrate it successfully.
I tried to flash the image PBE 'successfully' built with the updated DSDT, but that turned out bad (CRISIS disk easily fixed it ). So PBE does make bad ROM files...
Also, that website you linked me is awfully familiar. I've already tried those updates in Linux (see post) by following the instructions in the INSTALL text file that is in the tar archive. Didn't have an effect though, not sure if the same will happen if the updates make it into the BIOS.
Posts: 300
Threads: 5
Joined: Mar 2010
Reputation:
14
DSDT is too big after modification. You won't be able to re-integrate it. PBE sometime not reliable. Now I don't use PBE anymore for re-building BIOS image but when I use PBE before, I re-build the BIOS image 4 times & I'll make sure all 4 images are identical. If one of 'em not identical, I removed all 4 images & re-build another 4 images until I got all identical. Don't use PBE in guest OS (virtual machine) because somehow PBE unable to generate correct BIOS image.
Please check one thing for me. Install AIDA64 in your TravelMate 5530G. In AIDA64, open ACPI Tool window (right-click at the status bar). Locate _TZ_ or similar object & under it, locate _PSV (passive cooling) object. If yours don't have _PSV object, I think the trip-point is configured somewhere else. So, correcting/modifying DSDT won't work.
If you use my modified BIOS image & you like it, please consider making a donation. Thank you very much. Donate Here
Posts: 43
Threads: 2
Joined: May 2011
Reputation:
10
07-15-2011, 06:15 AM (This post was last modified: 07-15-2011, 06:52 AM by Blasku.)
(07-14-2011, 07:17 PM)kizwan Wrote: DSDT is too big after modification. You won't be able to re-integrate it. PBE sometime not reliable. Now I don't use PBE anymore for re-building BIOS image but when I use PBE before, I re-build the BIOS image 4 times & I'll make sure all 4 images are identical. If one of 'em not identical, I removed all 4 images & re-build another 4 images until I got all identical. Don't use PBE in guest OS (virtual machine) because somehow PBE unable to generate correct BIOS image.
It turns out that PBE Pro 2.2.1.3 works a bit better than what I've been using until now (2.2.0.1 I think). At least there are no build errors (when rebuilding I mean) when I inject the new DSDT. Having read that only PBE is capable of rearranging modules for a fit (I think you wrote it in one of your posts over at notebookreview.com), this is the only hope of me permanently updating the DSDT.
The 4 times build method is a very good idea, I'll try it right away !
(07-14-2011, 07:17 PM)kizwan Wrote: Please check one thing for me. Install AIDA64 in your TravelMate 5530G. In AIDA64, open ACPI Tool window (right-click at the status bar). Locate _TZ_ or similar object & under it, locate _PSV (passive cooling) object. If yours don't have _PSV object, I think the trip-point is configured somewhere else. So, correcting/modifying DSDT won't work.
There actually is a PSV0 and also a PSVA object in there. I've attached a screenshot of it. That's actually a good sign, isn't it?
BTW, TheWiz had an idea in his first reply to this thread that there might be hidden options in the BIOS regarding trip points, whose settings might override the ones that are set in the DSDT. Do you think that's possible (What PBE shows in the "Setup table" tool includes the hidden menus too?)?
EDIT: Bah, the ROM I've built with the new PBE seemed perfect until I flashed it... Had to use the CRISIS disk again. That means that I'll have to shuffle the modules around manually for Phoenix tool to be successful?