Announcement

Collapse
No announcement yet.

MSI Motherboard BIOS Updating Remains A Pain For Linux Users

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    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.

    Comment


    • #32
      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

      Comment


      • #33
        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.

        Comment


        • #34
          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.

          Comment


          • #35
            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).

            Comment


            • #36
              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.
              Michael Larabel
              https://www.michaellarabel.com/

              Comment


              • #37
                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.
                Stop TCPA, stupid software patents and corrupt politicians!

                Comment

                Working...
                X