LENOVO (IBM) Bioses, especially Thinkpad. Previous requests

Discussion in 'BIOS Mods' started by simkard, Sep 27, 2007.

Thread Status:
Not open for further replies.
  1. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  2. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    #362 Yen, May 9, 2009
    Last edited: May 9, 2009
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    #364 Yen, May 10, 2009
    Last edited by a moderator: Apr 20, 2017
    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 :D

    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.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. innuendo

    innuendo MDL Novice

    May 1, 2009
    10
    0
    0
    #365 innuendo, May 10, 2009
    Last edited by a moderator: Apr 20, 2017
    Yen,

    i'm glad I could help, but you did all the hard work & have the expertise

    Thanks again :)
     
  5. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    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.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    #370 Yen, May 12, 2009
    Last edited by a moderator: Apr 20, 2017
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  8. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    #371 Yen, May 13, 2009
    Last edited: May 13, 2009
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  9. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    #372 Yen, May 13, 2009
    Last edited by a moderator: Apr 20, 2017
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  10. innuendo

    innuendo MDL Novice

    May 1, 2009
    10
    0
    0
    #373 innuendo, May 13, 2009
    Last edited by a moderator: Apr 20, 2017
  11. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  12. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    #376 Yen, May 15, 2009
    Last edited: May 15, 2009
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  13. khu_kho

    khu_kho MDL Novice

    May 6, 2008
    22
    1
    0
    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.
     
  14. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    13,101
    14,047
    340
    No problem!;):)
    Thanks for your useful link. Now we can patch more bioses.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  15. roycemek

    roycemek MDL Novice

    May 16, 2009
    2
    0
    0