This is no request thread! HP COMPAQ bioses, how to modify the bios?

Discussion in 'BIOS Mods' started by Yen, Aug 6, 2009.

  1. nando4

    nando4 MDL Junior Member

    Jun 28, 2009
    72
    12
    0
  2. zerg32

    zerg32 MDL Novice

    Feb 14, 2011
    7
    6
    0
    ACPI modded in 8710w bios

    <link removed>

    My ACPI bios modded bios does not work :(
    It seems that I'm not able to decompile and recompile the DSDT correctly.
    It is strange because this modded table works if loaded with asl /loadtable.

    I noticed that recompiled table is smaller than original one.

    I'll try to look more into it.

    Are there any ideas why the table is no recompiled correctly ?
     
  3. DmanX

    DmanX MDL Novice

    Dec 4, 2010
    8
    0
    0
    I wonder if it is possible to unlock the advanced options menu in BIOS?
     
  4. phu_dj

    phu_dj MDL Member

    Sep 9, 2010
    102
    9
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. phu_dj

    phu_dj MDL Member

    Sep 9, 2010
    102
    9
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. zerg32

    zerg32 MDL Novice

    Feb 14, 2011
    7
    6
    0
    I've modded 8710w BIOS as nando4 asked me. I've tested it and it works correctly.

    here is the link w w w . s e n d s p a c e . c o m / f i l e / w h 1 i r x

    If somebody interested I can post my tools for modding and a quick tutorial.
     
  7. sebus

    sebus MDL Guru

    Jul 23, 2008
    6,384
    2,037
    210
    Definitely! Please do post

    sebus
     
  8. pepito2

    pepito2 MDL Novice

    Oct 2, 2009
    32
    0
    0

    Yes, please post them!
     
  9. zerg32

    zerg32 MDL Novice

    Feb 14, 2011
    7
    6
    0
    #1431 zerg32, Feb 23, 2011
    Last edited by a moderator: Apr 20, 2017
    I analyzed ADDC V3 and the code supplied by Relay on this forum.
    So I made a tool that can unpack and compress HP BIOSes for laptops like 8710w, 6910p etc.

    BIOS contains several compressed parts and some special part called ROM block by ADDC.
    My tool can manage this compressed parts.

    Here is an example of such parts in a BIOS:

    Code:
    65556; 10014; 2; 1; 14; 1; 112; 96; 20000; POST
    65672; 10088; 2; 1; 14; 1; 65056; 43838; 20100; POST
    109530; 1ABDA; 2; 1; 14; 1; 2873; 2231; 31000; SETU
    111781; 1B4A5; 2; 1; 14; 1; 65536; 33595; 40000; KBC
    145396; 237F4; 2; 1; 14; 1; 7616; 3756; 60000; MESS
    149172; 246B4; 2; 1; 14; 1; 2584; 1383; 9D000; OSBI
    150575; 24C2F; 2; 1; 14; 1; 2950; 1238; 9DC00; NVID
    151833; 25119; 2; 1; 14; 1; 65536; 32193; E0000; ROME
    184046; 2CEEE; 2; 1; 14; 0; 65536; 51739; F0000; F000
    235805; 3991D; 2; 1; 14; 1; 228784; 122003; 40000; F10_
    357828; 575C4; 2; 1; 14; 1; 40448; 25522; 40000; MEBX
    383370; 5D98A; 2; 1; 14; 1; 85753; 46013; 65000; DSDT
    429403; 68D5B; 2; 1; 14; 1; 131072; 68405; A0000; SMM2
    497828; 798A4; 2; 1; 14; 1; 30208; 21113; D0000; MBA
    518961; 7EB31; 2; 1; 14; 1; 28160; 21392; D1000; UNDI
    540373; 83ED5; 2; 1; 14; 1; 65536; 23822; 10000; P16X
    564215; 89BF7; 2; 1; 14; 1; 4305; 2881; 10000; TPM
    567116; 8A74C; 2; 1; 14; 1; 8253; 3172; 200000; SEC3
    570308; 8B3C4; 2; 1; 14; 1; 57856; 47771; C0000; G84_
    618099; 96E73; 2; 1; 14; 1; 57856; 47754; C0000; G84N
    665873; A2911; 2; 1; 14; 1; 59904; 48568; C0000; G92_
    714461; AE6DD; 2; 1; 14; 0; 7574; 2689; 90000; HPLO
    
    columns are the following:
    Code:
    offset; ofset in hex; header version; reserved; more bytes; unpacked length; packed length; target address; description
    For more information you can look into documentation of ADDC

    Here are the most intresting parts for me:

    DSDT - DSDT ACPI table. Can be used to configure fan behaviour.
    HPLO, NVID, OSBI - different logos. Their format is 4bit RLE compressed BMP
    G84, G84_, G92 are video bioses for different video cards.


    Currently my tool can do two things:
    * Unpack bios. HPUnpack <BIOS File>. There will be a lot of files like 90000_HPLO.bin and 90000_HPLO.dec.bin.
    First are compressed sections without headers, second decompressed sections.

    * Replace a section. HPUnpack <BIOS File> replace <Targed Address in hex like in the previous table> <replacement file>.
    Check that <replacement file> is named differently from the decompressed section or it will be replaced and integrated incorrectly.

    I tested it on 8710w and 6910p bios, I managed to replace images, video bios, dsdt table.

    There is the following strange behaviour with dsdt table editing.
    If you decompile dsdt with asl.exe and compile it back, the resulting file will be less than source file.
    So if you want to edit the dsdt you should do the following:
    * decompile it
    * recompile it
    * compare result with source file
    * only the ending should differ
    * cut this ending and store it somewhere
    * edit the decompiled source
    * compile it
    * add previously stored ending to compiled file
    * replace the dsdt in the bios with resulting file

    There is also an assumption that rom block begins at offset C8BDC hex. Before editing the bios you should look at this offset
    and check that this is the first not FF byte and a lot of bytes before it are FF.

    Current version is beta and needs more testing, I'll post the sources of my tool on github after some cleanup of the code.
    Sources are in C#.

    Here is the link
    h t t p : / / w w w . s e n d s p a c e . c o m / f i l e / k y h 7 a 1
     
  10. pepito2

    pepito2 MDL Novice

    Oct 2, 2009
    32
    0
    0

    Hi,

    I have tried changing a logo in my 6820s BIOS. The changes which I made, are hex edit the palette of the bmp. So same size, but more compressable because the palette is only 2 colors (all FFFFFF and one 000000)


    It works ok (I haven't flashed) but when I decompile the new rom it has these changes:

    1) The logo (obivusly)
    2) Romblock:

    The original one: 19_FFF65366_ROMBLOCK_ROM (414.567 bytes)
    The new one: 19_FFF6539F_ROMBLOCK_ROM (414.624 bytes)


    And the diffs are extra FFs just before the romblock starts (the one in offset C8BDC). In new rom.bin the offset C8BDC looks like the original one


    Is this reasonable?



    Thanks
     
  11. zerg32

    zerg32 MDL Novice

    Feb 14, 2011
    7
    6
    0
    I think so.

    ADDC uses different algorithm to extract the romblock. It includes all the FF between last section end and C8BDC. My tools skips them.

    Also compressed section size can differ even if size of the logo is the same, because different data comresses differently.

    But I recommend to have a USB FDD with recovery floppy.
     
  12. pepito2

    pepito2 MDL Novice

    Oct 2, 2009
    32
    0
    0

    Ok, I will modify the date of the BIOS and I will try...

    Someone knows where to find the latest X1350 bios?

    Thanks
     
  13. sebus

    sebus MDL Guru

    Jul 23, 2008
    6,384
    2,037
    210
    See post #1441 on next page for a success outcome

    @zerg32, a single byte change to 20100_POST.dec.bin & saving it as 20100_POST_new.bin
    then replacing it in original BIOS with correct syntax

    hpunpack 68YTT.BIN replace 20100 POST 20100_POST_new.bin

    creates new compressed 20100new.comp.bin which is 1 byte shorter (ABB8) then original compressed 20100_POST.bin (ABB9) but the difference in hex are plenty.

    Would that be expected? Would one byte change make such difference to the compression?

    If the size was the same of the newly compressed module (shouldn't it?), then hex replacement in main BIOS would be easy...

    Also comparing original 68YTT.BIN to newly created newBios.rom, the are many differences also BEYOND the 20100new.comp.bin section (something I would not expect?! or maybe yes, if the replacement module is different size then original?)

    But comparing 2 folders (one unpacked original BIOS 68YTT.BIN - second unpacked newly created newBios.rom)
    shows ONLY the edited modules being different (which is promising...)

    sebus
     
  14. pepito2

    pepito2 MDL Novice

    Oct 2, 2009
    32
    0
    0
    I have flashed my mod, and it worked...

    I moded the 6820s BIOS for ATI of TTAV (SLIC2.1, SPLon, whitelist removed):

    - Hex edited the palette of the intel log to make it black and white
    - Changed the date of the bios to a more current one

    The results:

    It flashed correctly
    It booted correctly
    The new BIOS date was correct
    The intel logo was a white square, I will have to look more closely (As I hexedited it by hand...)

    :worthy:


    Some suggestions for hpunpack (If you don't mind...)

    In the instructions posted here, is missing the parameter 'name' for the replace action.
    It should check for the argument first, if you missed one it crashes...


    cheers
     
  15. teils

    teils MDL Junior Member

    Jan 22, 2008
    64
    1
    0
    Hello for all i have a question i have this motherboard dc5100 hp rompaq. I would modify the bios with slic 2.1 wher is the name of tool for mod it? thankyou
     
  16. TTAV134

    TTAV134 MDL Expert

    Mar 1, 2009
    1,559
    656
    60
    as far as i know there is no tool for this model.
     
  17. phu_dj

    phu_dj MDL Member

    Sep 9, 2010
    102
    9
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...