(Help) I bricked a Acer X4630g with a bad bios Flash

I am using a EEPROM BIOS USB Programmer CH341A black PCB, flashrom v0.9.9-r1954 on Linux 5.0.0-25-generic (x86_64) to reflash the bios.
I tried to modify this bios and I bricked the machine. I did back up the bios but after a reflash using flashom under ubuntu it still does not boot.

Here is a link to the original bios:
https://global-download.acer.com/GDFiles…C=ACER&SC=AAP_1

Here is the backed up file.


Thanks for any help!

bk_4630g.rom.zip (2.24 MB)

@snakeman - Please clarify, what “Backup” is the attached file, after you bricked it? Where is your backup from before you did anything? That is the file needed here.

What is the BIOS chip ID? And, are you a Linux user? If not, why are you using Linux/Flashrom to do this? I can’t help with any of that, but if you are a windows user I can help you with the general CH341A software if this is a software version read/write issue.

@Lost_N_BIOS The backup is a file that I backed up with the provided software from ACER. The Bios ID is “MX25L3206E”. This is what I used to program it with; sudo flashrom --programmer ch341a_spi -c MX25L3206E/MX25L3208E -w bk_4630g.bin
[sudo] password for owner:
flashrom v0.9.9-r1954 on Linux 5.0.0-25-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop… OK.
Found Macronix flash chip “MX25L3206E/MX25L3208E” (4096 kB, SPI) on ch341a_spi.
Reading old flash chip contents… done.
Erasing and writing flash chip… Erase/write done.
Verifying flash… VERIFIED.

I used the windows software because i was having problem getting it recognized via windows software.

snakeman

It may be fine, or it may be due to flashrom, I’m not familiar enough with it to know what may cause it to error, what versions work best with what chips etc.
I would find the solution to the windows issue and use it, but that’s just me. You probably need to find a compatible version for your chip is all, or use ASProgrammer instead, either one would get it done in windows.

Please clarify for me when you made the above backup file with Acer software? Was that made before you did anything else here? Before you tried to flash your MOD bios, after that, or before you tried to recover with flash programmer etc?
If you have backup from before you flash mod BIOS, please upload that. What did you modify, the stock BIOS from Acer, or a dump/backup?
And what is this Acer software? Is it something included in that stock BIOS package you linked, if yes OK I will check it.

That backup was made before any modifications were done. I was trying to unhide some features. I wanted to use onboard video with DGPU. I could not do it with stock bios. The file I uploaded is the true backup. Do yo need my nightmare file that I tried to mod, oh yeah and I was trying to add slic 2.5 for server stuff also.



snakeman

You usually cannot enable this graphic and disable that graphic, so if your SLIC edit was OK, BIOS is probably fine, you just have no display output due to nearly all laptops it’s not possible to disable the iGPU
Or, could be due to how you programmed it? Yes, go ahead and upload your mod file too so I can see if I notice any obvious issue that could possibly have caused the bricking, also it would be best to compare this and your backup too since stock BIOS would not be similar to your backup.

I see what could be the issue, this is a split BIOS, you need to dump both chips, compile the BIOS, edit it, then split again. You may be able to edit just the BIOS and reprogram it, but sometimes that may cause a problem, so something to add to the list of possibilities here
So, make sure when you are programming that you are programming the correct chip! The 4MB one is the BIOS region (What you are editing), the 8MB one is FD/ME region. If you’ve mixed those up, you need to reprogram the 8MB one with the 8MB file in the ROM folder of stock BIOS package.

* Edit 2 @snakeman - looking over your edit in general, this is all wrong For starters, you can’t set blank named items to user (What are you doing there, do you need extra blank or spaces ), and you can’t set anything in the debug folder to use either.
In general, this BIOS is not setup for AMIBCP editing, I would advise no edits be made with AMIBCP. The structure and layout is all wrong in AMIBCP, settings do not correspond to option values etc.
Wow, what do you think all those blank ones are that you’ve set to User, and how did you come up with those ideas that xx blank = xx setting? Ohh! I see, did you compare AMITSE and Setup IFR’s side by side?
If yes, good idea in general, but for this kind of edit it would need to be done manually (@AMITSE/SetupData) since AMIBCP is parsing the displayed data incorrectly from AMITSE instead of setup
Magic string at SetupPE32 looks to be in control of the main menu visibility, but I can’t be sure until I see images of your BIOS, and maybe until you test 1-2 BIOS I send you

I assume this is the issue, any single edit with AMIBCP is going to break this BIOS, even if it is a setting that looks correct and actual option matches.

Please zip for me a single image of each of your main BIOS sections, so I can have a quick glance at each visible main page. No need to go into each individual submenu or anything like that.
Then tell me your overall goal.

I bricked my laptop’s bios two times because of intel’s enabllng disabling settings

@XPLAKE8175 - do you mean you tried to enable/disable graphics? If yes, that is normal, it’s not bricked, just no display output. One byte in the BIOS needs corrected via programmer, to undue the setting change

This is a desktop computer or really small form factor (SFF)
https://www.acer.com/ac/en/CA/content/pr…el/DT.VLAAA.008

Just trying to enable intel igpu with dgpu the newer models had it enabled when shipped.


snakeman

With desktop, it should be possible, unless they have some gimped motherboard in there, or hybrid laptop board etc. Sorry, I just assumed this was a laptop

I see BIOS has SATA4 Support enabled, I wonder if that is SATA4 12Gb/s or simply means SATA ports 1-4 are enabled/disabled? How many SATA ports is there?

I assume you checked and confirm your CPU has internal graphics?
Internal graphics is on auto, so you want this changed to a hard enabled, correct?

One Of: Internal Graphics, VarStoreInfo (VarOffset/VarName): 0x316, VarStore: 0x1, QuestionId: 0x14D, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 AD 06 AE 06 4D 01 01 00 16 03 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
One Of Option: Auto, Value (8 bit): 0x2 (default) {09 0E A2 06 30 00 02 00 00 00 00 00 00 00}
One Of Option: Disabled, Value (8 bit): 0x0 {09 0E A5 06 00 00 00 00 00 00 00 00 00 00}
One Of Option: Enabled, Value (8 bit): 0x1 {09 0E A4 06 00 00 01 00 00 00 00 00 00 00}


What do you want these set to? Please copy this back, bold and notate your desired changes


One Of: iGPU Port Configuration, VarStoreInfo (VarOffset/VarName): 0x315, VarStore: 0x1, QuestionId: 0x147, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 BF 06 C0 06 47 01 01 00 15 03 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x58553 One Of Option: Disabled, Value (8 bit): 0x0 (default) {09 0E A5 06 30 00 00 00 00 00 00 00 00 00}
0x58561 One Of Option: Enabled, Value (8 bit): 0x1 {09 0E A4 06 00 00 01 00 00 00 00 00 00 00}

0x58591 One Of: iGPU Digital Port B Mode, VarStoreInfo (VarOffset/VarName): 0x318, VarStore: 0x1, QuestionId: 0x148, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 C1 06 C2 06 48 01 01 00 18 03 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x585B7 One Of Option: Port is fully muxed with dGPU, Value (8 bit): 0x0 (default) {09 0E C7 06 30 00 00 00 00 00 00 00 00 00}
0x585C5 One Of Option: Port is not muxed with dGPU, Value (8 bit): 0x1 {09 0E C8 06 00 00 01 00 00 00 00 00 00 00}
0x585D3 One Of Option: Port supports HPD only, Value (8 bit): 0x2 {09 0E C9 06 00 00 02 00 00 00 00 00 00 00}

0x585E3 One Of: iGPU Digital Port C Mode, VarStoreInfo (VarOffset/VarName): 0x319, VarStore: 0x1, QuestionId: 0x149, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 C3 06 C4 06 49 01 01 00 19 03 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x58609 One Of Option: Port is fully muxed with dGPU, Value (8 bit): 0x0 (default) {09 0E C7 06 30 00 00 00 00 00 00 00 00 00}
0x58617 One Of Option: Port is not muxed with dGPU, Value (8 bit): 0x1 {09 0E C8 06 00 00 01 00 00 00 00 00 00 00}
0x58625 One Of Option: Port supports HPD only, Value (8 bit): 0x2 {09 0E C9 06 00 00 02 00 00 00 00 00 00 00}

0x58635 One Of: iGPU Digital Port D Mode, VarStoreInfo (VarOffset/VarName): 0x31A, VarStore: 0x1, QuestionId: 0x14A, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 C5 06 C6 06 4A 01 01 00 1A 03 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x5865B One Of Option: Port is fully muxed with dGPU, Value (8 bit): 0x0 (default) {09 0E C7 06 30 00 00 00 00 00 00 00 00 00}
0x58669 One Of Option: Port is not muxed with dGPU, Value (8 bit): 0x1 {09 0E C8 06 00 00 01 00 00 00 00 00 00 00}
0x58677 One Of Option: Port supports HPD only, Value (8 bit): 0x2 {09 0E C9 06 00 00 02 00 00 00 00 00 00 00}

One Of: Aperture Size, VarStoreInfo (VarOffset/VarName): 0x2AB, VarStore: 0x1, QuestionId: 0x14E, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 A4 07 A5 07 4E 01 01 00 AB 02 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x5883B One Of Option: 128MB, Value (8 bit): 0x1 {09 0E A6 07 00 00 01 00 00 00 00 00 00 00}
0x58849 One Of Option: 256MB, Value (8 bit): 0x2 (default) {09 0E A7 07 30 00 02 00 00 00 00 00 00 00}
0x58857 One Of Option: 512MB, Value (8 bit): 0x3 {09 0E A8 07 00 00 03 00 00 00 00 00 00 00}


0x58867 One Of: DVMT Pre-Allocated, VarStoreInfo (VarOffset/VarName): 0x301, VarStore: 0x1, QuestionId: 0x14F, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 1E 07 30 07 4F 01 01 00 01 03 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x5888D One Of Option: 32M, Value (8 bit): 0x1 (default) {09 0E 1F 07 30 00 01 00 00 00 00 00 00 00}
0x5889B One Of Option: 64M, Value (8 bit): 0x2 {09 0E 20 07 00 00 02 00 00 00 00 00 00 00}
0x588A9 One Of Option: 96M, Value (8 bit): 0x3 {09 0E 21 07 00 00 03 00 00 00 00 00 00 00}
0x588B7 One Of Option: 128M, Value (8 bit): 0x4 {09 0E 22 07 00 00 04 00 00 00 00 00 00 00}
0x588C5 One Of Option: 160M, Value (8 bit): 0x5 {09 0E 23 07 00 00 05 00 00 00 00 00 00 00}
0x588D3 One Of Option: 192M, Value (8 bit): 0x6 {09 0E 24 07 00 00 06 00 00 00 00 00 00 00}
0x588E1 One Of Option: 224M, Value (8 bit): 0x7 {09 0E 25 07 00 00 07 00 00 00 00 00 00 00}
0x588EF One Of Option: 256M, Value (8 bit): 0x8 {09 0E 26 07 00 00 08 00 00 00 00 00 00 00}
0x588FD One Of Option: 288M, Value (8 bit): 0x9 {09 0E 27 07 00 00 09 00 00 00 00 00 00 00}
0x5890B One Of Option: 320M, Value (8 bit): 0xA {09 0E 28 07 00 00 0A 00 00 00 00 00 00 00}
0x58919 One Of Option: 352M, Value (8 bit): 0xB {09 0E 29 07 00 00 0B 00 00 00 00 00 00 00}
0x58927 One Of Option: 384M, Value (8 bit): 0xC {09 0E 2A 07 00 00 0C 00 00 00 00 00 00 00}
0x58935 One Of Option: 416M, Value (8 bit): 0xD {09 0E 2B 07 00 00 0D 00 00 00 00 00 00 00}
0x58943 One Of Option: 448M, Value (8 bit): 0xE {09 0E 2C 07 00 00 0E 00 00 00 00 00 00 00}
0x58951 One Of Option: 480M, Value (8 bit): 0xF {09 0E 2D 07 00 00 0F 00 00 00 00 00 00 00}
0x5895F One Of Option: 512M, Value (8 bit): 0x10 {09 0E 2E 07 00 00 10 00 00 00 00 00 00 00}
0x5896D One Of Option: 1024M, Value (8 bit): 0x11 {09 0E 2F 07 00 00 11 00 00 00 00 00 00 00}

0x5897D One Of: DVMT Total Gfx Mem, VarStoreInfo (VarOffset/VarName): 0x302, VarStore: 0x1, QuestionId: 0x150, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 31 07 32 07 50 01 01 00 02 03 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x589A3 One Of Option: 128M, Value (8 bit): 0x1 {09 0E 33 07 00 00 01 00 00 00 00 00 00 00}
0x589B1 One Of Option: 256M, Value (8 bit): 0x2 (default) {09 0E 34 07 30 00 02 00 00 00 00 00 00 00}
0x589BF One Of Option: MAX, Value (8 bit): 0x3 {09 0E 35 07 00 00 03 00 00 00 00 00 00 00}

Away for awhile can we just unhide all the options for now. I need to get it booting again!.


snakeman

Did you see my comments at #6 about two BIOS chips on this board? If you flashed the correct one always, then your backup should restore the system to running state. Until you can do that with your backup nothing I do would help, there’s nothing to edit/change in your backup since it was from running state
If you are not sure, and maybe reflashed the 8MB chip with 4MB BIOS, then you need to reprogram both. Let me know if you think this could be the case, if you are not 100% sure, dump both for me now with programmer, make sure you know which chip has what contents (name them as such too for me)
Then zip and send both to me.

I can only find one chip on the motherboard!
I’m putting the board aside for now, thanks guys. moving on to my Z370N wifi board. I will open a new topic

@Lost_N_BIOS I found the other chip and I have my new programmer!

Thanks,
snakeman

4630g4mbchipbkMX25L3206E.zip (2.24 MB)

4630g8mbchipbk.zip (2.88 MB)

No need to leave it bricked, lets fix it Show me image of the motherboard, there is two BIOS chips for sure.

@Lost_N_BIOS I’m ready to get this brick going now. I found the other chip, like you said. What should I do now. I uploaded the files in the prior post.



snakeman

@snakeman - so, now you see both chips, did you mix them up before, and possible flash one to the other when you did your mod/reflash?
Both these dumps, as I said before, are incorrectly sized. I suggest you stop using whatever software you are using (Flashrom still?), it may mess up your write back and any write would fail possibly due to it trying to write more than chip can hold.
Use CH341A software in windows, you probably simply had bad connection or tried wrong version software before. What is the ID on both chips? Maybe I can test and tell you which software version works best for each, if I have them (or I can google around for you)

Here is fixed BIOS with FD Unlocked, updated ME FW, BIOS region is your originally dumped BIOS region (fixed for size). FD/ME goes into the 8MB chip, and BIOS region goes into the 4MB chip, be sure to program both back and into correct chips
You can only open the 4MB or 12MB compiled BIOS with UEFITool, other BIOS tools may be able to open either, but contents may not be displayed properly due to it would be a truncated/split BIOS File.
http://s000.tinyupload.com/index.php?fil…393494443795540

Once back and running again, you’ll be able to use FPT to flash any region, you may still need to unlock BIOS and /SMI lock via grub or BIOS edit at AMITSE/SetupData Module
I disabled those by default in setup module, but not all BIOS use this, some use AMITSE/SetupData values, and others use NVRAM value, multiple tests of a single setting change would be required to find out which your BIOS is using.
If SMI/BIOS Lock still enabled, then one test done already, this one, setup edit, so that would only leave two other tests to find out which is used if this one still has those two settings enabled.

Never mind, for now, I am unable to find proper dance to do this setup module edit, no matter how it’s saved, what else I remove with plans of adding back later, swap out entire volume at once, etc (I’ve tried 20+ things so far, using various methods and software, had to quit for now)
Anyway, no matter how I try to rebuild the BIOS will brick due to it removes a padding file directly above microcode module in that same volume. I will figure this out for you eventually so we can do the actual unlock mod, I hope, if not you’ll have to do all changes you want via setup_var
If you got all your edits correct you tried to do before, and AMIBCP didn’t kill the BIOS due to all I mentioned above (it would, I assume), then this was also probably an issue on your rebuilt BIOS file. You never sent it to me to check, so I can’t be sure.
I assume it would have this issue too, since I haven’t found a way around it yet

Once you are back up and running again, I can work on unlocking the BIOS for you, but I need those images I requested first, and if I can figure out a dance to get around loosing that padding file (let me know if you need image to show you which I mean)

@Lost_N_BIOS Thanks, I will give it a try.
I used your files With the windows software ver 1.29 same result.
I am surprised, they verify and everything,

Chips are as follows
4 mb chip MX25L3206E
8 mb chip MX25L6406E

Do you think I should try the files from Acer website? But, I will lose my ether address Windows Activation …?

Here are the files from Acer


snakeman

ME9.1.1.1000.bin.zip (2.84 MB)

P22-A3.zip (2.22 MB)

@snakeman - If, you gave me a working, non-modified dump, which I think you did, and you wrote back both files I sent you to the correct chips, and it fails, then either something else is broken on the board at same time (it happens), or there is some software write issue (probably this).

No, stock BIOS should not be used for this, in any way, due to what you mentioned and more.

First, dump both chips again now with 1.30 and then send to me to check, in a single 7zip or zip/rar. Then write the files again with 1.30 instead of 1.29, with all power sources removed from the board, and be sure to erase and blank check before you write anything.

This post, the user seems to think chip needs to be removed from the board, but that shouldn’t be a thing you have to do - [Guide] Using CH341A-based programmer to flash SPI EEPROM (12)
Ignore the 5V stuff they are discussing, it’s not valid and does not relate to these issues anyway, only mentioning because if you see the discussion you might think it’s valid info and or related (it’s neither)
This 5v stuff is myth, well true in a way, internally, but none of the outputs are 5V, confirmed by this user check with DMM (and many others I’ve seen too).
Also, if you expand all the comments there, you’ll see others writing to this same chip without issue and without removal mentioned too. Same for this guide, all writes done in place, same BIOS chips - https://www.chucknemeth.com/flash-lenovo-x230-coreboot/
They also say this one is best without power connected, so inline with what I said first below (ideal way to do all dumps/writes)
https://www.reddit.com/r/thinkpad/commen…isconnect_from/

Due to this discussion, remove the CMOS battery, remove the main battery, and remove the PSU, then try again with 1.30 after you send me the requested dumps.
Then if it still fails, try again with all three of those things connected (don’t power on, just have it all installed). This should not be required, but on some systems it is the only way, try last

Another confirmed write OK and your same CHIP ID without chip removal here
[Guide] Using CH341A-based programmer to flash SPI EEPROM (20)
However, he had to use flashrom and have board power sources connected, but that’s probably due to board design. This shows chip removal is not required though, and since you can ID chip with other software that also proves your OK there and don’t have to use flashrom.
All boards are different when doing these things, due to how they’re designed, some need power connected, some wont work with it connected, some need xxx software while others that wont work and you need to use zzz software instead.

More confirmation, I tested this exact chip before in the past too. Notice what I said about chip ID?? I’ll have to check again, if you are not seeing those same things, I can’t remember what was going on there, but since I mentioned those non exact ID’s being detected it could be common.
Dell R720xd iDRAC BIOS recovery (2)

If you need me to retest these chips I can, but I’m not sure if I have any boards with this chip in place that are in working condition, of course that wouldn’t matter I suppose, since it wouldn’t be exact same as your board anyway.

** EDIT!!! - Looking around for recovery on this to see if others had issues, or if I could find use of CH341A and same chip ID on this system, no luck, but I found this which mentions a BIOS WP Protect jumper!
https://www.justanswer.com/computer/a204…f-computer.html

Please find and remove that jumper!

@Lost_N_BIOS V1.30 will not install at all, after the install I keep getting memory errors when detecting the chip. I rebooted tried many times no go.

I have a Dell XPS 8300 with the same chip “4 mb chip MX25L3206E” that will not erase or flash that’s why I stopped trying on that one. Same problems as the links you pointed out to me.

At least this one erases and verifies that the flash as complete. This is truly strange. I therefore can not provide new dumps. Unkess you want the currently ones i flashed with v1.29.

First, none of these software you install, they are stand alone apps you run from the folder they are contained in. You can ignore the error you get, if it’s the one I’m thinking of (Access violation I think), then detect chip

If you can’t get it, then it must be the board, I can erase and flash these chips without issue. Did you see my last comment there, if’s from user with your exact same system, there is a jumper stopping you

Verifying flash is complete means nothing, unless you can then close the app, open again, dump the chip, and then compare that dump in hex vs what you intended to write and it’s a match.
These programs can verify a 100% FF or 00 write to a board, not always to be trusted, especially when you’re running into “iffy” situations