WoW!! Thank you very much being a pioneer in testing my way, I really appreciate. So now we've got a way to modify Lenovo bioses with new phoenix structure, too. Brief instructions: -Lenovo bios with new structure, empty ROM.LOG, bios fully decomposed using PBE. Works at 2MByte bios too, because PBE can decompose 2MByte bioses with new structure. Only way to get module info is to change something at PBE and redo the changes to allow PBE to rebuild the UNMODIFIED bios and have a look at build log file: Here is the original log file: Code: FI - Integrate Flash Image. Version 0.0.1.8 Jun 20 2006 Copyright (C) 2006 by Phoenix Technologies, Ltd. All Rights Reserved 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 -- ------- ------------------------------------ -------- -------- -------- -------------------- 01. HOLE FFF00000-FFF0EFFF 0000F000 HOLE0.ROM 02. FFV ROM1 FFF0F000-FFF1F7FF 00010800 01. SECTION _D00 FFF0F000-FFF0FA59 00000A5A DISPLAY0.ROM 02. SECTION _G00 FFF0FA5A-FFF0FEBD 00000464 DECOMPC0.ROM 03. SECTION _A02 FFF0FEBE-FFF0FF44 00000087 ACPI2.BIN 04. BIN volumeinfo.bin FFF0FF45-FFF0FFA4 00000060 --GAP-- FFF0FFA5-FFF0FFE7 00000043 05. BIN _C00 FFF0FFE8-FFF1F7FF 0000F818 UPDATE0.ROM 03. HOLE FFF1F800-FFF2F7FF 00010000 HOLE1.ROM 04. FFV ROM2 FFF2F800-FFF7FFFF 00050800 01. BIN _R00 FFF2F800-FFF3F817 00010018 OPROM0.ROM 02. BIN _R01 FFF3F818-FFF4F82F 00010018 OPROM1.ROM 03. SECTION _B01 FFF4F830-FFF59FB9 0000A78A BIOSCOD1.ROM 04. SECTION _B06 FFF59FBA-FFF63CD0 00009D17 BIOSCOD6.ROM 05. SECTION _B02 FFF63CD1-FFF6D07A 000093AA BIOSCOD2.ROM 06. SECTION _Q00 FFF6D07B-FFF751AD 00008133 MOD_5100.ROM 07. SECTION _H00 FFF751AE-FFF7A6BA 0000550D MOD_4800.ROM 08. SECTION _B00 FFF7A6BB-FFF7F2B5 00004BFB BIOSCOD0.ROM 09. SECTION _L00 FFF7F2B6-FFF7FAEE 00000839 LOGO0.BIN 10. SECTION _K03 FFF7FAEF-FFF7FDD6 000002E8 MOD_4B03.ROM 11. SECTION _J01 FFF7FDD7-FFF7FEC6 000000F0 MOD_4A01.ROM 12. SECTION _A01 FFF7FEC7-FFF7FF4B 00000085 ACPI1.BIN 13. BIN volumeinfo.bin FFF7FF4C-FFF7FFAB 00000060 --GAP-- FFF7FFAC-FFF7FFFF 00000054 05. HOLE FFF80000-FFF81FFF 00002000 ESCD(GENERATED) 06. HOLE FFF82000-FFF8FFFF 0000E000 HOLE2.ROM 07. HOLE FFF90000-FFF907FF 00000800 HOLE3.ROM 08. HOLE FFF90800-FFF90FFF 00000800 HOLE4.ROM 09. HOLE FFF91000-FFF910B5 000000B6 HOLE5.ROM 10. HOLE FFF910B6-FFF913FF 0000034A HOLE6.ROM 11. HOLE FFF91400-FFF914FF 00000100 HOLE7.ROM 12. HOLE FFF91500-FFF917FF 00000300 HOLE8.ROM 13. HOLE FFF91800-FFF91FFF 00000800 HOLE9.ROM 14. HOLE FFF92000-FFF9FFFF 0000E000 HOLE10.ROM 15. FFV ROM3 FFFA0000-FFFAFFFF 00010000 01. SECTION _S00 FFFA0000-FFFA47BE 000047BF STRINGS0.ROM 02. SECTION _K00 FFFA47BF-FFFA8C07 00004449 MOD_4B00.ROM 03. SECTION _E00 FFFA8C08-FFFACF69 00004362 SETUP0.ROM 04. SECTION _B05 FFFACF6A-FFFAF9FC 00002A93 BIOSCOD5.ROM 05. SECTION _Y00 FFFAF9FD-FFFAFC37 0000023B MOD_5900.ROM 06. BIN _J00 FFFAFC38-FFFAFE4F 00000218 MOD_4A00.ROM 07. BIN _A04 FFFAFE50-FFFAFEA3 00000054 ACPI4.ROM 08. BIN _A03 FFFAFEA4-FFFAFEF3 00000050 ACPI3.ROM 09. SECTION _A06 FFFAFEF4-FFFAFF42 0000004F ACPI6.ROM 10. BIN volumeinfo.bin FFFAFF43-FFFAFFA2 00000060 --GAP-- FFFAFFA3-FFFAFFFF 0000005D 16. HOLE FFFB0000-FFFB0BFF 00000C00 HOLE11.ROM 17. HOLE FFFB0C00-FFFBFFFF 0000F400 HOLE12.ROM 18. FFV PRIMARY FFFC0000-FFFEFFFF 00030000 01. SECTION _T00 FFFC0000-FFFC41C3 000041C4 TEMPLAT0.ROM 02. SECTION _M00 FFFC41C4-FFFC7DA0 00003BDD MISER0.ROM 03. SECTION _L01 FFFC7DA1-FFFCA5E3 00002843 LOGO1.BIN 04. SECTION _A00 FFFCA5E4-FFFCCB37 00002554 ACPI0.AML 05. SECTION _L02 FFFCCB38-FFFCEF4F 00002418 LOGO2.BIN 06. SECTION _L03 FFFCEF50-FFFD0FA2 00002053 LOGO3.BIN 07. SECTION _B03 FFFD0FA3-FFFD2C80 00001CDE BIOSCOD3.ROM 08. SECTION _L04 FFFD2C81-FFFD48AD 00001C2D LOGO4.BIN 09. SECTION _B04 FFFD48AE-FFFD62A8 000019FB BIOSCOD4.ROM 10. SECTION _B07 FFFD62A9-FFFD746A 000011C2 BIOSCOD7.ROM 11. BIN _A05 FFFD746B-FFFD74B4 0000004A ACPI5.ROM --GAP-- FFFD74B5-FFFD74B7 00000003 12. BIN volumedir.bin2 FFFD74B8-FFFD7B4F 00000698 13. BIN volumeinfo.bin FFFD7B50-FFFD7BAF 00000060 --GAP-- FFFD7BB0-FFFE0007 00008458 14. BIN _X01 FFFE0008-FFFE541F 00005418 ROMEXEC1.ROM --GAP-- FFFE5420-FFFE8DB7 00003998 15. BIN _X00 FFFE8DB8-FFFEFFFF 00007248 ROMEXEC0.ROM 19. HOLE FFFF0000-FFFFFFFF 00010000 BB.BIN VOLUME USAGE SUMMARY ================= Num Name Used Bytes Free Bytes --- ----------------- -------------------- ------------------- 00. ROM1 67517 (0x107BD) 67 (0x43) 01. ROM2 329644 (0x507AC) 84 (0x54) 02. ROM3 65443 (0xFFA3) 93 (0x5D) 03. PRIMARY 147981 (0x2420D) 48627 (0xBDF3) ROM USAGE SUMMARY ================= Total Gap Count : 6 gaps Total Gap Size : 48871 (0xBEE7) bytes Largest Gap Size : 33880 (0x8458) bytes Average Gap Size : 8145 (0x1FD1) bytes Total File Count : 58 files Total File Size : 999705 (0xF4119) bytes Largest File Size : 65560 (0x10018) bytes Average File Size : 17236 (0x4354) bytes 0 Error/0 Warning. You see the BIOSCOD1.ROM: _B01 FFF4F830-FFF59FB9 0000A78A BIOSCOD1.ROM Its compressed size is A78Ah and must be remained. Modify it like: Since a original SLIC is present at AcpiScope, rename SLIC to SLEC at both locations. Since RSDT got a fixed OEM table ID Capell00 rename it to the one of the SLIC you want to insert (CB-01 ') at offset D692h at BIOSCOD1.ROM. Now rebuild the bios by pressing ctrl+u at PBE and have a look at the build log. Have a look at the compressed size, you have to adjust it again to A78Ah. I've played with strings. Since the oemID and table ID of the RSDT table are read from another address you can modify them at offset D4D5h behind the RSDT string. Alternatively you may modify other OEMids at other tables like APIC table. Once you've managed to get the original compressed size of BIOSCOD1.rom again, save the rebuilt bios. Now copy and write the new compressed module (found at offset 4F830h-59FB9h of biosfile, since it is a 1Mbyte bios) into a untouched original bios. Delete the bios you've rebuilt with PBE, you don't need it anymore. Step2: Add a Acpimodule like the usual way. Open bios with PBE, edit ROM.SCR (add 'ACPI ACPI7.ROM -COMPRESS:no') copy your SLIC as ACPI7.ROM to temp dir of PBE and rebuild the bios with PBE, done............... -COMPRESS:no is the command to insert it uncompressed. At old structure it is -X The clue: If you make sure the compressed size of BIOSCOD1.ROM is the same as at original, PBE doesn't need to shift offsets of modules. To copy the module into a original bios again, makes sure no unwanted changes are made. So you only have to trust PBE when adding the ACPI7 module. It did it well Build log of complete mod: Code: FI - Integrate Flash Image. Version 0.0.1.8 Jun 20 2006 Copyright (C) 2006 by Phoenix Technologies, Ltd. All Rights Reserved 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 -- ------- ------------------------------------ -------- -------- -------- -------------------- 01. HOLE FFF00000-FFF0EFFF 0000F000 HOLE0.ROM 02. FFV ROM1 FFF0F000-FFF1F7FF 00010800 01. SECTION _D00 FFF0F000-FFF0FA59 00000A5A DISPLAY0.ROM 02. SECTION _G00 FFF0FA5A-FFF0FEBD 00000464 DECOMPC0.ROM 03. SECTION _A02 FFF0FEBE-FFF0FF44 00000087 ACPI2.BIN 04. BIN volumeinfo.bin FFF0FF45-FFF0FFA4 00000060 --GAP-- FFF0FFA5-FFF0FFE7 00000043 05. BIN _C00 FFF0FFE8-FFF1F7FF 0000F818 UPDATE0.ROM 03. HOLE FFF1F800-FFF2F7FF 00010000 HOLE1.ROM 04. FFV ROM2 FFF2F800-FFF7FFFF 00050800 01. BIN _R00 FFF2F800-FFF3F817 00010018 OPROM0.ROM 02. BIN _R01 FFF3F818-FFF4F82F 00010018 OPROM1.ROM 03. SECTION _B01 FFF4F830-FFF59FB9 0000A78A BIOSCOD1.ROM 04. SECTION _B06 FFF59FBA-FFF63CD0 00009D17 BIOSCOD6.ROM 05. SECTION _B02 FFF63CD1-FFF6D07A 000093AA BIOSCOD2.ROM 06. SECTION _Q00 FFF6D07B-FFF751AD 00008133 MOD_5100.ROM 07. SECTION _H00 FFF751AE-FFF7A6BA 0000550D MOD_4800.ROM 08. SECTION _B00 FFF7A6BB-FFF7F2B5 00004BFB BIOSCOD0.ROM 09. SECTION _L00 FFF7F2B6-FFF7FAEE 00000839 LOGO0.BIN 10. SECTION _K03 FFF7FAEF-FFF7FDD6 000002E8 MOD_4B03.ROM 11. SECTION _J01 FFF7FDD7-FFF7FEC6 000000F0 MOD_4A01.ROM 12. SECTION _A01 FFF7FEC7-FFF7FF4B 00000085 ACPI1.BIN 13. BIN volumeinfo.bin FFF7FF4C-FFF7FFAB 00000060 --GAP-- FFF7FFAC-FFF7FFFF 00000054 05. HOLE FFF80000-FFF81FFF 00002000 ESCD(GENERATED) 06. HOLE FFF82000-FFF8FFFF 0000E000 HOLE2.ROM 07. HOLE FFF90000-FFF907FF 00000800 HOLE3.ROM 08. HOLE FFF90800-FFF90FFF 00000800 HOLE4.ROM 09. HOLE FFF91000-FFF910B5 000000B6 HOLE5.ROM 10. HOLE FFF910B6-FFF913FF 0000034A HOLE6.ROM 11. HOLE FFF91400-FFF914FF 00000100 HOLE7.ROM 12. HOLE FFF91500-FFF917FF 00000300 HOLE8.ROM 13. HOLE FFF91800-FFF91FFF 00000800 HOLE9.ROM 14. HOLE FFF92000-FFF9FFFF 0000E000 HOLE10.ROM 15. FFV ROM3 FFFA0000-FFFAFFFF 00010000 01. SECTION _S00 FFFA0000-FFFA47BE 000047BF STRINGS0.ROM 02. SECTION _K00 FFFA47BF-FFFA8C07 00004449 MOD_4B00.ROM 03. SECTION _E00 FFFA8C08-FFFACF69 00004362 SETUP0.ROM 04. SECTION _B05 FFFACF6A-FFFAF9FC 00002A93 BIOSCOD5.ROM 05. SECTION _Y00 FFFAF9FD-FFFAFC37 0000023B MOD_5900.ROM 06. BIN _J00 FFFAFC38-FFFAFE4F 00000218 MOD_4A00.ROM 07. BIN _A04 FFFAFE50-FFFAFEA3 00000054 ACPI4.ROM 08. BIN _A03 FFFAFEA4-FFFAFEF3 00000050 ACPI3.ROM 09. SECTION _A06 FFFAFEF4-FFFAFF42 0000004F ACPI6.ROM 10. BIN volumeinfo.bin FFFAFF43-FFFAFFA2 00000060 --GAP-- FFFAFFA3-FFFAFFFF 0000005D 16. HOLE FFFB0000-FFFB0BFF 00000C00 HOLE11.ROM 17. HOLE FFFB0C00-FFFBFFFF 0000F400 HOLE12.ROM 18. FFV PRIMARY FFFC0000-FFFEFFFF 00030000 01. SECTION _T00 FFFC0000-FFFC41C3 000041C4 TEMPLAT0.ROM 02. SECTION _M00 FFFC41C4-FFFC7DA0 00003BDD MISER0.ROM 03. SECTION _L01 FFFC7DA1-FFFCA5E3 00002843 LOGO1.BIN 04. SECTION _A00 FFFCA5E4-FFFCCB37 00002554 ACPI0.AML 05. SECTION _L02 FFFCCB38-FFFCEF4F 00002418 LOGO2.BIN 06. SECTION _L03 FFFCEF50-FFFD0FA2 00002053 LOGO3.BIN 07. SECTION _B03 FFFD0FA3-FFFD2C80 00001CDE BIOSCOD3.ROM 08. SECTION _L04 FFFD2C81-FFFD48AD 00001C2D LOGO4.BIN 09. SECTION _B04 FFFD48AE-FFFD62A8 000019FB BIOSCOD4.ROM 10. SECTION _B07 FFFD62A9-FFFD746A 000011C2 BIOSCOD7.ROM 11. BIN _A07 FFFD746B-FFFD75F8 0000018E ACPI7.ROM 12. BIN _A05 FFFD75F9-FFFD7642 0000004A ACPI5.ROM --GAP-- FFFD7643-FFFD7647 00000005 13. BIN volumedir.bin2 FFFD7648-FFFD7CDF 00000698 14. BIN volumeinfo.bin FFFD7CE0-FFFD7D3F 00000060 --GAP-- FFFD7D40-FFFE0007 000082C8 15. BIN _X01 FFFE0008-FFFE541F 00005418 ROMEXEC1.ROM --GAP-- FFFE5420-FFFE8DB7 00003998 16. BIN _X00 FFFE8DB8-FFFEFFFF 00007248 ROMEXEC0.ROM 19. HOLE FFFF0000-FFFFFFFF 00010000 BB.BIN VOLUME USAGE SUMMARY ================= Num Name Used Bytes Free Bytes --- ----------------- -------------------- ------------------- 00. ROM1 67517 (0x107BD) 67 (0x43) 01. ROM2 329644 (0x507AC) 84 (0x54) 02. ROM3 65443 (0xFFA3) 93 (0x5D) 03. PRIMARY 148379 (0x2439B) 48229 (0xBC65) ROM USAGE SUMMARY ================= Total Gap Count : 6 gaps Total Gap Size : 48473 (0xBD59) bytes Largest Gap Size : 33480 (0x82C8) bytes Average Gap Size : 8078 (0x1F8E) bytes Total File Count : 59 files Total File Size : 1000103 (0xF42A7) bytes Largest File Size : 65560 (0x10018) bytes Average File Size : 16950 (0x4236) bytes 0 Error/0 Warning. You see, most of the original offsets are remained. This is a general instruction: If you keep the compressed size of the modified BIOSCOD1.ROM, the probability to get a unusable bios will be far less. Big thanks to innuendo!!! Without anyone who tests our mods we would be helpless.
You're welcome! Could you please upload the AcpiScope report of mod3, I want to have a look if the marker of original SLIC is still missing. Thanks.
1. The SLIC mod work perfect 2. The tool thinkpad-1802 error fix work perfect Sorry Yen, I made you confused, please disregard my request.