Forum RSS Feed Follow @ Twitter Follow On Facebook

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

Username:


Password:





[-]
Latest Threads
[REQUEST] Lenovo G50-45 BIOS Unlock
Last Post: szakiz
Yesterday 06:36 PM
» Replies: 50
» Views: 53761
[REQUEST] GA-8I865GME-775-RH (rev. 3.9) ...
Last Post: facebreaker
Yesterday 05:48 PM
» Replies: 0
» Views: 90
[REQUEST] Acer TravelMate 5760(G,Z) BIOS...
Last Post: quibic
Yesterday 01:03 AM
» Replies: 49
» Views: 26517
Asus P8Z77-M RT-d Unlock
Last Post: cbaldwin1
07-11-2025 04:21 PM
» Replies: 0
» Views: 213
[REQUEST] Lenovo Yoga 530-14ARR (8MCNxxW...
Last Post: Dudu2002
07-11-2025 02:04 PM
» Replies: 4
» Views: 3146
[REQUEST] Gigabyte GA-X99P-SLI BIOS with...
Last Post: DKisCRUSHIN
07-11-2025 09:50 AM
» Replies: 0
» Views: 189
Acer Aspire 5920G - Requesting Modded BI...
Last Post: EbrahimSiami
07-10-2025 02:56 PM
» Replies: 1
» Views: 364
Acer A517-51G-58S5 - Complete BIOS image...
Last Post: Humboldt
07-10-2025 01:07 PM
» Replies: 2
» Views: 233
i7 2860QM how to raise power limit?
Last Post: DeathBringer
07-10-2025 07:03 AM
» Replies: 10
» Views: 512
Lenovo Yoga Pro 7 14ASP9 Bios Unlock
Last Post: Dudu2002
07-10-2025 03:02 AM
» Replies: 3
» Views: 337
[RESOLVED] Help! BIOS for Asus GL503VS R...
Last Post: AmosNZ
07-10-2025 12:09 AM
» Replies: 5
» Views: 3005
[REQUEST] Acer Predator Helios 500 PH517...
Last Post: TeckToe
07-09-2025 11:29 PM
» Replies: 4
» Views: 1506
Gigabyte G6X 9MG insydeH2O IOS Unlock
Last Post: Zzhheennyyaa
07-09-2025 04:37 PM
» Replies: 2
» Views: 635
[SOLVED] Lenovo IdeaPad 510-15ISK - BIOS...
Last Post: outsydeh2o
07-09-2025 09:39 AM
» Replies: 1
» Views: 374
(new to forums) searching for aid/direct...
Last Post: adorable_yangire
07-09-2025 12:11 AM
» Replies: 0
» Views: 314
[SOLVED] Change Serial Number, UUID, Mac...
Last Post: dsdn1
07-08-2025 07:55 PM
» Replies: 10
» Views: 16915
[REQUEST] Lenovo Yoga 7 Pro 82Y7 unlock
Last Post: Dudu2002
07-08-2025 07:13 AM
» Replies: 1
» Views: 277
[REQUEST] Lenovo G710 BIOS Whitelist Rem...
Last Post: Dudu2002
07-08-2025 07:12 AM
» Replies: 491
» Views: 217982
Lenovo Y550 BIOS Unlocking (Advanced Men...
Last Post: kentsergeo
07-08-2025 12:15 AM
» Replies: 5
» Views: 1182
[REQUEST] Acer Aspire 8930(G) BIOS Unloc...
Last Post: Ilias manolopoulos
07-07-2025 01:52 PM
» Replies: 58
» Views: 43785

AWARD BIOS - extracting and rebuilding ACPI tables from module BIN
#1
Hi, first time posting, I hope someone here can help.

BLUF: Please can anyone advise me on how to extract the "ACPITBL.BIN" from a Phoenix/AWARD v6.00PG BIOS into the various AML and ACPI data tables that it contains, and how to reverse the process to compile the ACPI tables into a BIN module that can then be inserted into a BIOS?


Long version:

I have an Intel GM45/ICH9M-E based Jetway NF93R-LF motherboard salvaged from an old network appliance, which I have abused greatly beyond the intent of its designers and which is now running various services on my home network.  It's quite a neat little board, it fits nicely in a very small case and I intend to push it as long as I can rather than replace it if possible.

This board originally came with some anaemic Celeron CPU which I have since upgraded to a slightly less anaemic core 2 extreme (quad) QX9300, which sort of half works so long as I disable the speedstep / cpufreq driver in linux.

Looking at the ACPI SSDT configuration, the BIOS was clearly never intended to run with speedstep active as the _PSS list is gibberish (eg. frequencies at 17.6GHz, nonsense register values etc.).  As a result, with speedstep active the CPU sits locked to 1600MHz and won't scale over this as there are no valid speedstep profiles in the _PSS list.  With cpufreq disabled the cpu runs at spec of 2533MHz when unloaded, but cores drop to 1600MHz when loaded which is a bit counterproductive from a performance standpoint.

I have reverse engineered the DSDT and the 6 SSDTs, and with some detective work, educated guessing and experimentation I have built a valid table of frequency/voltage modes that the CPU will correctly run at.  I can now enable and control speedstep manually by writing the magic values to the relevant CPU model specific registers.  I can also override the BIOS ACPI tables by manually overwriting the DSDT and SSDTs from the OS kernel at boot time, which then works perfectly, though this is a bit clunky to do in linux.

Now that I know for a fact that the board itself is fully capable of running C2D/C2Q CPUs with speedstep, I want to roll my corrected ACPI tables back into the BIOS (which is otherwise fine) and have a fully speedstep-enabled (and properly performing) board with no need for boot-time overrides.

It seems that the ACPI tables live in a BIOS module called "ACPITBL.BIN".  I can extract the file from the BIOS image using CBROM, and I can see that it seems to contain the relevant tables, but I can also see that it seems to be some sort of compressed archive with a header that I don't recognise.  I can't figure out what sort of archive they are compressed into and therefore how to decompress or recompress them.  It doesn't seem to be a simple concatenation (as it has a ~50% compression ratio), nor LHA / LZH which I believe is commonly used for BIOS modules, as it's missing the correct header.  I'm sure the answer must be quite simple, but several evenings of reading have not yielded the answer so can anyone here point me in the right direction?

The first few lines of "ACPITBL.BIN" are shown in the attached image.

Any help much appreciated, thanks.


Attached Files Thumbnail(s)
   
find
quote
#2
Extract: Use a tool like CBROM or PhonenixTool to extract the module containing the ACPI tables
Unpack: Compressed format may require a specialized decompressor. Check for BIOS-specific formats (e.g. LZH or custom variants).
Modify: Use an AML/ASL decompiler like iasl from the ACPICA project to decompile the ACPI tables for editing. When editing, recompile them into AML format.

find
quote
#3
Everything is as the user above said. Except phoenix tool cannot read award.
find
quote
#4
(01-07-2025, 02:03 AM)OdieKessler Wrote: Extract: Use a tool like CBROM or PhonenixTool to extract the module containing the ACPI tables
Unpack: Compressed format may require a specialized decompressor. Check for BIOS-specific formats (e.g. LZH or custom variants).
Modify: Use an AML/ASL decompiler like iasl from the ACPICA project to decompile the ACPI tables for editing. When editing, recompile them into AML format.

Thanks for the input, 

"Extract" step works great with CBROM - that's how I got the module described above.
"Modify" step I'm comfortable with: I originally decompiled, modified and recompiled the OS-loaded ACPI tables using iasl, and that's how I arrived at the set of working, speedstep-enabled tables I've got now.

It's the "Unpack" / repack step that's got me stumped. No joy with LZH or LHA so I guess I'll keep trying to figure out the format.

Cheers!
find
quote
#5
The acpi module is not compressed. There's a "header" of 1540h bytes, which mostly is assembly code, followed by raw acpi tables in ASL format. I've just downloaded bios file from the support page you provided and got dsdt table.
Code:
*     Signature        "DSDT"
*     Length           0x00005782 (22402)
*     Revision         0x01 **** ACPI 1.0, no 64-bit math support
*     Checksum         0x47
*     OEM ID           "INTELR"
*     OEM Table ID     "AWRDACPI"
*     OEM Revision     0x00001000 (4096)
*     Compiler ID      "MSFT"
*     Compiler Version 0x03000000 (50331648)
find
quote


Forum Jump:


Users browsing this thread: 2 Guest(s)