Page 4 of 4 FirstFirst ... 234
Results 31 to 37 of 37

Thread: MSI Motherboard BIOS Updating Remains A Pain For Linux Users

  1. #31
    Join Date
    Oct 2013
    Posts
    27

    Default

    My MSI B85-G43 has plain .zip archives for BIOS updates. I had no problem extracting under Linux and flashing with a USB flash drive from the BIOS.

  2. #32
    Join Date
    Nov 2013
    Posts
    4

    Default

    Quote Originally Posted by dashcloud View Post
    Here's a Linux solution from one of the flashrom folks:

    tail -c 8M E7738v37.exe >bios.rom

    Good luck!
    The BIOS dump has this specific format:
    - first 16 bytes are all 0xff
    - next sequence is 5a a5 f0 0f
    In 4-byte sequences this becomes:
    0xffffffff 0xffffffff 0xffffffff 0xffffffff 0x0ff0a55a

    Sources:
    UEFITool: https://github.com/LongSoft/UEFITool...r/descriptor.h
    The Unix "file" utility: http://bugs.gw.com/view.php?id=117

    But how to determine the end of the dump file?
    ...I guess I'll have to do some more digging for specs

  3. #33
    Join Date
    Nov 2013
    Posts
    4

    Default

    Ok, I found the specs for Intel SPI flash: http://www.intel.com/content/dam/www...-datasheet.pdf
    Flash descriptor documentation starts at page 256, section 5.24.2.

    The descriptor block is always 4K and located in the first block - even if the block size is greater than 4K.
    Confirmed: At offset 0x10 you will always find the signature 0x0ff0a55a

    Now, how to determine the correct ending of the flash dump...

    There are four regions in the flash chip: Descriptor (1 block, read-only), GbE (2 blocks), BIOS and Intel ME.
    If you look at the specs, the Desciptor Map beginning at offset 0x14 contains a pointer to the Region section in the Descriptor.
    The Region section contains information about the offset and size of the other three chip regions.

    My guess is, if we want to design an automatic method of finding raw flash dumps, we first look for the Descriptor signature, then locate the Region section (which must within the same 4K block), and perhaps then we can determine the end of the dump from the offset and size of the last chip region.

  4. #34
    Join Date
    May 2008
    Posts
    214

    Default

    Quote Originally Posted by helgewl View Post
    Ok, I found the specs for Intel SPI flash: http://www.intel.com/content/dam/www...-datasheet.pdf
    Flash descriptor documentation starts at page 256, section 5.24.2.

    The descriptor block is always 4K and located in the first block - even if the block size is greater than 4K.
    Confirmed: At offset 0x10 you will always find the signature 0x0ff0a55a

    Now, how to determine the correct ending of the flash dump...

    There are four regions in the flash chip: Descriptor (1 block, read-only), GbE (2 blocks), BIOS and Intel ME.
    If you look at the specs, the Desciptor Map beginning at offset 0x14 contains a pointer to the Region section in the Descriptor.
    The Region section contains information about the offset and size of the other three chip regions.

    My guess is, if we want to design an automatic method of finding raw flash dumps, we first look for the Descriptor signature, then locate the Region section (which must within the same 4K block), and perhaps then we can determine the end of the dump from the offset and size of the last chip region.
    If you're interested in this, I highly suggest stopping by the #flashrom channel on Freenode on IRC. Also, if you send an email to the mailing list, there's probably other people interested in or who have some prototypes for something like this.
    Somewhat related is the work that's been done on ASUS motherboard flashing.

    On Windows, there's some very crazy and dedicated folks who hack laptop BIOSes to add things or make them work beyond where they were intended to.

  5. #35
    Join Date
    Oct 2013
    Posts
    53

    Default

    That's not just MSI's problem.

    I went to update the BIOS on my Asus motherboard. I got the BIOS from the website, installed the flashing utility from the motherboard's installer disk, and went to flash the thing. Doing this in Linux wasn't exactly an option, so I used my dual-boot copy of Windows. The BIOS flashing utility said the BIOS image didn't go to my motherboard, so I told it to force the issue. Now I type this post with it :P

    Most people don't bother updating BIOS because they don't usually stick next-gen hardware in their motherboard like I was dumb enough to do (Thuban on an AM2+ system with DDR2--cheaper upgrade path would have been "replace everything" and end up with a simply faster computer).

  6. #36

    Default

    Quote Originally Posted by dashcloud View Post
    Here's a Linux solution from one of the flashrom folks:

    tail -c 8M E7738v37.exe >bios.rom

    Good luck!
    Finally got around to trying it yesterday... Doesn't work. The in-BIOS updater won't accept the file.

  7. #37
    Join Date
    Mar 2009
    Location
    in front of my box :p
    Posts
    826

    Default

    Quote Originally Posted by FishB8 View Post
    What cave have you been living in? http://flashrom.org/Flashrom Those in-bios flashing utilities are broken half the time anyway.
    It is not all that easy. Flashrom is great but you still need a supported actual flash chip as well as a supported Super-IO. Recently a lot of mainboards and notebooks are on the market carrying ridiculous chips that seem to be custom made or something for a single series of mainboards. That really sucks and leaves you with no options for flashrom save even coreboot.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •