Hi all! One of my friends was going to throw away this laptop, and I figured I wanted to fix it just to do something. It ended up being the bios completely screwed up (it would try to power up, then it will automatically power down; checked all rails, S-state signals, etc, no problems). I took a backup of the contents of the SPI chip, then proceeded to flash a random BIOS I found for a similar model. It booted straight up! However the data showing up there is not valid, i.e. it's a different model, and a different asset tag, etc. Now, even tho this is "good enough", I would like to restore the original values for these fields. I've tried (with no luck) the InsydeH20 SMBios editor, and it reports an error 0x82 (Not supported), which I saw it's expected for Sony Vaios. Now, having a look at the raw dump, I can see at least 2 instances where a string "$DMI" exists, followed by data and some strings (which I assume it's the raw DMI info for the Type1 or something like that). Since I don't know how's the expected layout of these things, how could I "transplant" these values into the new one? This comes from the original one (previously there were all 0xFFs): Code: 00706000 24 44 4d 49 01 05 ff 10 00 53 56 45 31 34 31 32 |$DMI.....SVE1412| 00706010 36 50 4c 42 0b 05 ff 10 00 31 30 38 33 39 37 33 |6PLB.....1083973| 00706020 36 32 36 4c 0b 06 ff 11 00 46 4e 43 2d 50 45 53 |626L.....FNC-PES| 00706030 50 45 58 54 42 0b 07 ff 37 00 42 4b 45 58 33 41 |PEXTB...7.BKEX3A| 00706040 5f 77 55 64 49 7a 68 40 5f 77 54 42 40 52 34 6c |_wUdIzh@_wTB@R4l| 00706050 54 40 45 74 35 42 73 6c 40 64 66 71 6c 51 5f 6c |T@Et5Bsl@dfqlQ_l| 00706060 40 64 49 7a 6c 51 5f 77 54 42 49 7a 01 06 ff 0d |@dIzlQ_wTBIz....| 00706070 00 43 41 30 30 31 35 48 38 01 07 ff 15 00 32 37 |.CA0015H8.....27| 00706080 35 35 36 32 38 32 2d 30 30 30 34 39 35 33 01 08 |556282-0004953..| 00706090 ff 15 00 e0 a4 d5 ad d2 b3 e2 11 8c 0a 54 53 ed |.............TS.| 007060a0 d3 a5 7f ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 007060b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| And this is from the random bios dump I got from the internet: Code: 00704000 24 44 4d 49 01 07 ff 15 00 32 37 35 35 34 39 30 |$DMI.....2755490| 00704010 32 2d 33 30 30 32 33 32 32 01 08 ff 15 00 d0 b7 |2-3002322.......| 00704020 1f b0 c8 33 e1 11 bf 39 30 f9 ed ad 9b 6f 01 06 |...3...90....o..| 00704030 ff 0d 00 43 31 30 37 43 39 53 53 01 05 ff 10 00 |...C107C9SS.....| 00704040 53 56 45 31 34 31 31 34 46 58 42 0b 05 ff 10 00 |SVE14114FXB.....| 00704050 31 30 37 34 32 37 32 39 36 34 41 0b 06 ff 0d 00 |1074272964A.....| 00704060 46 4e 43 2d 45 58 54 42 0b 07 ff 37 00 41 59 30 |FNC-EXTB...7.AY0| 00704070 54 33 42 4d 70 56 4f 4d 46 7a 77 35 72 44 77 70 |T3BMpVOMFzw5rDwp| 00704080 36 6a 4d 37 6c 44 7a 68 56 4d 72 69 74 73 6a 78 |6jM7lDzhVMritsjx| 00704090 56 4d 70 56 52 73 6a 7a 52 44 70 56 51 74 72 ff |VMpVRsjzRDpVQtr.| 007040a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| Is there any kind of specification for these? Do they contain checksum? Are these strings references by a table somewhere else? Can I just replace this section as-is and call it a day? More info: These two dumps come from a different bios version, The corrupted bios was R0170D5, the random one from internet is R0170E5 and now it's running R0220E5. Thanks!
That's it. All you need is to copy the data after $DMI until you see the next $"SOMETEXT" from the old bios to the new bios. But if possible, try to use a clean bios instead of a dump because you might have issues with the intel management engine region (if it's an intel core laptop)
Thanks for your reply TigTex. So, I'll replace the entire section from $DMI till the next $WHATEVER I find afterwards. If the size doesn't match I'll trim or add dummy 0xff bytes so I don't upset any offsets. That should do it, right? About the ME region, yes, this is from an Ivy Bridge laptop, running an i5-32somethingM. My old dump from the corrupted bios must have the ME region, but the dump I flashed (and updated later using Sony's tools) seems to be working. I'm not sure if after updating the bios using the tool the ME region got updated somehow or not. I have no clue either if the old dump from the bios has a proper ME region and/or firmware. Thanks again!