G74SX in-circuit reprogram of BIOS SPI

Discussion in 'ASUS Gaming Notebook Forum' started by Sir Robin, Apr 11, 2012.

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

    hackness Notebook Virtuoso

    Reputations:
    1,237
    Messages:
    2,367
    Likes Received:
    427
    Trophy Points:
    101
    Interesting, I should try it one day if mine is bricked too, it'll be a hardcore lesson for me as I haven't done any SPI programming before. Did you happen to take a picture of where you cut the hole?
     
  2. Sir Robin

    Sir Robin Notebook Geek

    Reputations:
    8
    Messages:
    84
    Likes Received:
    5
    Trophy Points:
    16
    Yes, here is a good shot of the hole, and the surrounding area.
    You should be able find the spot, without too much effort. The
    DDR DIMMs are to the right. The drives are below the hole. The
    wireless adapter is too the left. I found the hole to be a little snug.
    It works fine, but it's not easy to see the pins, on the SPI flash,
    when attaching the clip. In hindsight, I would have made the hole
    slightly taller/wider, so I could better see around the clip, or added a
    side view hole (wall near the drive). With a little work, it would be easy
    to put together a long pogo-pin adapter. In that case, the hole size
    could be reduced.

    Sir Robin
     

    Attached Files:

  3. hackness

    hackness Notebook Virtuoso

    Reputations:
    1,237
    Messages:
    2,367
    Likes Received:
    427
    Trophy Points:
    101
    Ahh you mean without disassembly, I was thinking that you had to cut a hole on the motherboard :D. So if I do the SPI flashing after disassembled, I don't need to cut anything and just attach the device to the chip right?
     
  4. Sir Robin

    Sir Robin Notebook Geek

    Reputations:
    8
    Messages:
    84
    Likes Received:
    5
    Trophy Points:
    16
    LOL! :)

    Right, but there may be an issue with powering the board? I have not
    tried powering a stand-alone G74SX motherboard. My guess is that it will
    work fine, but there is the possibility that the power/control logic has some
    dependency on the other parts of the system. It should be easy to test.
    Assuming the DC brick jack is mounted to the motherboard, you should be
    able to engage the DC plug, and see if 3.3V is delivered across pins 4 (GND)
    and 8 (3.3V), of the SPI device. If so, you should be good, on that front. If not,
    you either need to fix/bypass the dependency, or de-solder the part, and read/write it
    in a programmer. I do not recommend applying your own 3.3V power. Many
    motherboard chips are multi-voltage, and can be damaged if one supply is
    present, and not the others (you can, if there is an inline diode, or transistor,
    between the primary rail, and the device, but that is beyond the scope of
    what we're talking about here :) ) The other issue, that comes to mind, is
    SPI bus signal contention. You do not want to drive the signals (with the
    ISP adapter), if the chipset is also driving them. Most likely, the motherboard
    will power-up in a reset state, waiting for the user to press the power button.
    If this is the case, you should be able to read/modify the SPI flash without
    problems. If, for some reason, the motherboard attempts to access the SPI
    flash, once power is applied, you may have a problem accessing the flash,
    with the ISP adapter. In some cases, this can lead to damaged chips on
    the motherboard or ISP adapter. Holding the board in reset, if you can find
    the signal/button, should prevent this from being an issue. With an
    oscilloscope, you can easily determine if the motherboard is attempting to
    access the SPI flash, after power-up. If you try this, always read and verify,
    before attempting to change the SPI contents. Due to buggy programmer/ISP
    software, I recommend the following:

    1. Read the device contents into the programmer buffer
    2. Verify your read buffer against the device
    3. Save the file, in the desired format
    4. Clear the programmer read buffer
    5. Read the file back into the programmer buffer
    6. Verify your programmer buffer against the device
    7. If everything checks out, make a backup of the file, on another machine/drive

    Sir Robin
     
  5. Sir Robin

    Sir Robin Notebook Geek

    Reputations:
    8
    Messages:
    84
    Likes Received:
    5
    Trophy Points:
    16
    I have been digging into how to make a complete backup
    of the SPI flash, on the motherboard. Since each unit may
    have a unique programming of offset 0x0 - 0x17FFFF, it is
    important that owners be able to make a backup image, in case
    something goes wrong with the device/data, once the unit
    is out of warranty. As I mentioned earlier, this section does not
    appear to be changed by Easyflash, during the update procedure, and
    is not included in the update files, provided by Asus. So, if you
    loose the data contained in 0x0 - 0x17FFFF, you have no way to
    recover it, short of an RMA. This data is critical, because it
    contains the descriptor tables, ME code, Ethernet firmware, and
    likely some manufacture specific data structures (serial number,
    model/assembly numbers, etc).

    I have reviewed many of the available tools. So far, I have not
    found anything that does a complete SPI flash snapshot. I have,
    however, found two tools, that will make an accurate backup of the
    0x180000 - 0x3FFFFF section. In essence, they create an equivalent
    of the Asus update file, with the added benefit of including you current
    BIOS setups (since the NVRAM sections are included in that range). Here
    are the tool names:

    AMI AFUDOS or AFUWIN Aptio version (I recommend this tool over the other)
    AMI | American Megatrends Inc. : AMIBIOS Support

    Universal BIOS Backup ToolKit 2.0
    (The best way to get this tool is to google it.)

    So why is this important? If you are into custom BIOS mods, this is
    an easy way to backup/distribute your tested BIOS. Also, if you have
    a complicated BIOS setup, this trick will store the setup along with the
    BIOS code. Here is my personal favorite reason. Because it fixes the
    disabled keyboard backlight issue :)

    Yep, the G74SX appears to be subject to the same problem as the
    G73 series. Somewhere, in the BIOS, there is a variable, that, if changed,
    causes the backlight support code to be skipped (lack of backlight display
    during Asus splash screen). This same code must be responsible for the
    ACPI entry, which tells the windows driver how to handle the Fn key press
    events. I suspect this is why windows can not recover the lights, once the
    variable is corrupted. I do not yet know the exact cause of the variable
    corruption, but I suspect it has something to do with uninstalling Asus
    apps, which talk to the ATK driver module. Here is a link to the G73 series
    thread, for reference:

    http://forum.notebookreview.com/asus-gaming-notebook-forum/490250-asus-g73jh-keyboard-light-failure-after-bios-flash-209-a-34.html

    Gary's fix updates one of the BIOS variable locations, with a value that
    re-enables the keyboard backlight. At this time, I do not believe the
    G74SX uses the same location, so I would not suggest running Gary's
    fix on a G74SX. It may work, but so far, I don't see a similar variable in
    the G74SX snapshots.

    I will post the full keyboard backlight fix, in this thread:

    http://forum.notebookreview.com/asus-gaming-notebook-forum/659017-g74sx-keyboard-backlight-disabled.html

    Here is the readers digest version. If you have working keyboard backlights,
    make a snapshot of the BIOS code now, using one of the above tools. If they
    ever become disabled, you can use Easyflash, to re-enable them with your
    backup copy of the BIOS code.

    Enjoy,

    Sir Robin
     
  6. mybouadani

    mybouadani Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    Dear Sir Robin,
    I have a bricked g74sx bbk8 after a failed bios update to version 203 from version 202.
    I am desperate to get the 4mb file to then look for an SPI ROM tool to put things back into the BIOS chip according to your instructions.
    Would you please help me
     
  7. Sir Robin

    Sir Robin Notebook Geek

    Reputations:
    8
    Messages:
    84
    Likes Received:
    5
    Trophy Points:
    16
    Hi mybouadani,

    Sure, lets see if we can get your system going again :)

    First things first. If your unit is still under warranty, the easiest path
    to recovery is an RMA. There is a certain amount of hacking skill needed,
    to perform the reconstruction method. If you're comfortable with the concept,
    or up for a learning experience, then the reconstruction method may be a
    good option for you. If you are not comfortable with performing the
    operations, the reconstruction method may still be an option, if you have
    an open-minded repair shop, or friend, who can help you with the trickier
    parts.

    This subject has been discussed, in more detail, in the following thread:

    http://forum.notebookreview.com/asus-gaming-notebook-forum/668404-g73jh-bios-chip-replacement.html

    I recommend you give it a look. It may answer some of your questions.

    The first and most important step, in the reconstruction method, is to
    make a full copy of your SPI flash device. To do this, you will either
    need to disassemble your laptop, or duplicate the access hole modification
    I showed above. If you choose to do the access hole change, be sure to
    capture all of the plastic debris. It contains metal shielding, which can
    lodge between pins, on your motherboard, and cause shorts. I used a
    combination of an Xacto knife, and a debris catching tray, to make the
    change. I also carefully vacuumed the area, after I was done. As mentioned
    earlier, a soldering iron can be used to cut the hole, without dropping debris.
    I would avoid Dremel or grinding tools, because it's too hard to catch all
    of the removed material.

    Once you have access to the SPI flash, you will need to rig up a
    device reader/programmer, to read the contents. I can provide an
    Aardvark cable definition, if you have access to one. Alternately, I have
    outline a Bus Pirate cable in the above mentioned link. You are not limited
    to those two options. There are many programmers/adapters available.
    My personal favorite is the Dediprog SF-100. It is fast and reliable, but
    very expensive, compared to other options:

    DediProg.com :: products

    Once we have a copy of your SPI flash, we can put together a reconstruction,
    that will hopefully bring your unit back to life.

    One other thing. I have a slightly different model than you. It is possible that
    Asus used different sized SPI devices, in the G74SX line. The size of the device
    will effect where we do the splicing.

    How do you plan to access the SPI device?

    Sir Robin
     
  8. Wozzzaaa

    Wozzzaaa Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    5
    Thanks Sir Robin. Ive just fixed one of these for a customer. I had it already stripped, so it was easy to hex edit & splice the BIOS together. I used an external programmer, as I do this fairly often.

    I used a Smartpro 5000U with a SOIC8_W adapter.

    Ive got a copy of the 4mb Reconstructed BIOS if anybody wants one.
     
  9. Sir Robin

    Sir Robin Notebook Geek

    Reputations:
    8
    Messages:
    84
    Likes Received:
    5
    Trophy Points:
    16
    That's fantastic news Wozzzaaa! :) Glad it worked for you, and
    thanks for posting your results + the tools you used! It really helps
    to know that the trick has worked for others. Do you recall the
    laptop family/model number, and SPI part number? I would like to start
    list of families/models that have been repaired, and their associated
    SPI flash sizes/splice offsets.

    Thanks again, for taking the time to post your results!

    Sir Robin
     
  10. Wozzzaaa

    Wozzzaaa Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    5
    Hi
    The SPI was a Winbond W25Q32BV SOIC 208mil. I dont have the laptop details on me now, but it was a G74S.

    The dump from the SPI was 4MB. The downloaded file from Asus was 2MB, I pasted it at offset 0x180000 - 0x3FFFFF using a hex editor to create a reconstructed image. I was thinking of flashing the Asus bios dirrectly to the SPI at that offset, but decided against it.

    First time it flashed correctly, however failed to verify. I erased the SPI completely and the next time it verified fine.

    Once the Asus fired up, I used easyflash to load the latest BIOS - 203.

    Got some crappy iphone photos and screencaps of the flashing.
     
Loading...
Similar Threads - G74SX circuit reprogram
  1. hope123
    Replies:
    0
    Views:
    635
Thread Status:
Not open for further replies.

Share This Page