Highlighted
spellizzari
1 Copper

firmware issues on L322X

Jump to solution

I'm encountering a serious issue on an XPS13 (L322X) laptop that seems related to firmware and UEFI.

Context of the problem

Laptop model: L322X
BIOS version: A07

Description of the problem

Most of the times, the laptop doesn't start properly on cold boot. Pressing the power button causes the keyboard backlight to light up but the screen is pitch black and the DELL logo with the boot options doesn't show up. Toggling the caps lock key has no effect on its LED. A short press on the power button causes the laptop to shutdown immediately, and that is all I can do in such situation.

Sometimes, the laptop will function properly: the DELL logo appears, allowing me to enter into setup and boot as expected: I can start Windows 8 or any other installed OS and everything works fine. When an OS runs, I can put the laptop into sleep mode and it will wake back up normally. But if I choose another option (shutdown or restart), the laptop shuts down correctly but the problem will happen when it starts again.

The observed behavior happens 9 times out of 10 after each cold start, randomly. After days of test, it doesn't seem to be affected by:
- any BIOS setting, including UEFI mode/Legacy mode, Secure Boot, Rapid Start, or any other offered option; "Reset to defaults" has no effect,
- battery state and / or whether AC is plugged or not,
- whether external USB devices are plugged or not,
- internal temperature.

Another abnormal behavior is that when properly booted into Windows, I am unable to update BIOS. I downloaded the A09 version for L322X and ensured the downloaded file had the right MD5/SHA hashes. When I run the executable with administrator rights, during the step "Reading current BIOS" the following error occurs like 9 times out of 10: "ERROR 216: Failed to read BIOS from ROM! Status = 1604". When it doesn't occur, the executable shuts down the computer in order to reboot and perform the upgrade, but then again, when the laptop restarts, 9 times out of 10 the DELL logo doesn't appear and the only thing I can do is press the power button to power it off. When, in very rare occasions, the BIOS update utility succeeds in reading the current BIOS and the computer successfully reboots afterwards, it then boots the DOS-mode flash executable as expected, but this one also attempts to read the current BIOS from the ROM, and fails with the same error (and immediately shuts down the computer without allowing to retry the operation).

Context of the problem

The problem seems to have started after I tried to boot from a linux-based USB pendrive in UEFI mode. Before that, I was able to install any linux-based OS on the drive and boot when in Legacy mode without any problem. It is only after having booted a linux-based image when in UEFI mode that the problem started to occur, and hasn't stopped happening since then, no matter what OS I boot on and no matter the BIOS mode I use (UEFI or Legacy mode).

I searched for a solution on the web and found people having encountered similar behavior on laptops from other brands such as HP or Lenovo and Samsung. In all those situations the problem started to occur after booting linux-based OSes with BIOS in UEFI mode. In some cases this has even "bricked" the laptop (see https://bugs.launchpad.net/ubuntu-cdimage/+bug/1040557).

Looking for a solution

Since the problem happens before the UEFI/Legacy BIOS has a chance to run, It seems clear to me that the problem is at the firmware level. Since it occurs after a cold start, it must be caused by some BIOS/UEFI-related memory in invalid state. I hopped upgrading the firmware would solve the problem, but since I'm unable to get the flash tool to work I could not verify that.

Could this behavior be related to some known bugs in the computer firmware, particularly its UEFI implementation (I'm using firmware version A07)?

Is there a way to diagnose UEFI-related hardware memory and/or reset it into factory state?

Any help is welcome. Thanks in advance for your answers.

2 Solutions

Accepted Solutions
spellizzari
1 Copper

RE: firmware issues on L322X

Jump to solution

I did some more tests and succeeded in flashing the firmware to A09 version:

1) I ran the firmware tool on another computer, waiting for it to extract its data into temporary folder. When the extraction dialog box closed, I went to %TEMP%\ExtactTemp\ and copied the files to a FAT16 USB pendrive (sometimes the file default.rsp had an additional ".bak" extension; this needed to be renamed to "default.rsp").
2) I inserted the pendrive into a USB port of the L322X while powered off, disconnected the power cable, pressed the END key, reconnected the power cable and released the END key after 1 second. This caused the laptop to start automatically and directly boot the DOS flash utility on the pendrive.
3) The flash utility started reading the current BIOS and as expected, it failed and caused a restart. I kept repeating step 2 (tens of times) and the flash utility eventually succeeded in reading the ROM and completed the flash operation successfully.

When the computer restarted, the DELL logo appeared immediately. I entered setup options and verified that the firmware version was A09. Since then, the computer has always started properly after a cold boot or a restart and the problem has not occurred, so it seems flashing the firmware to the A09 version solved it.

I think it's safe to conclude for now that the firmware is the cause of the problem and not the hardware. Since the problem appeared after booting in UEFI mode on a linux kernel after months of using legacy BIOS, I think an operation -such as a kernel crash- may have put the NVRAM in an invalid state. I've read on the web that Windows and linux both use the NVRAM to store crash dumps, so this may be the origin of the problem. During the various tests I performed, I booted on an EFI shell and made a dump of the smbiosview and dmpstore commands, and I compared the dumps of before and after the flash succeeded with a merge utility, but I could not spot any meaningful differences (the only differences in smbiosview were about the SKUNumber that was patched in A08 or A09; there were more differences on EFI variables in dmpstore but as I could not find any documentation on most of them -especially those DELL related- I didn't spot anything useful; I can provide those dumps if necessary).

So for now, I don't know what solved the problem exactly: is it the A09 revision that corrects a bug that existed in A07, or is it the flashing process that cleaned up something in the NVRAM? (especially since "default.rsp" contains flags such as /cvar that seems to relate to clearing persistent memory)? Any insight on the topic is welcome.

0 Kudos
iluvxps13
1 Copper

RE: firmware issues on L322X

Jump to solution

Hi,

Thank you for the detailed solution to this problem. I had the exact same problem with my xps 13 (L322X) machine. Only difference being i was already on A09 BIOS. So I just updated it to A10 BIOS and this problem is fixed. 

Again, as you have mentioned it took quite a few trials to get it to read the current BIOS on boot up. Saved me the trouble of replacing the motherboard, which would have cost me around $200-$400 

Thanks again!

0 Kudos
7 Replies
spellizzari
1 Copper

RE: firmware issues on L322X

Jump to solution

I did some more tests and succeeded in flashing the firmware to A09 version:

1) I ran the firmware tool on another computer, waiting for it to extract its data into temporary folder. When the extraction dialog box closed, I went to %TEMP%\ExtactTemp\ and copied the files to a FAT16 USB pendrive (sometimes the file default.rsp had an additional ".bak" extension; this needed to be renamed to "default.rsp").
2) I inserted the pendrive into a USB port of the L322X while powered off, disconnected the power cable, pressed the END key, reconnected the power cable and released the END key after 1 second. This caused the laptop to start automatically and directly boot the DOS flash utility on the pendrive.
3) The flash utility started reading the current BIOS and as expected, it failed and caused a restart. I kept repeating step 2 (tens of times) and the flash utility eventually succeeded in reading the ROM and completed the flash operation successfully.

When the computer restarted, the DELL logo appeared immediately. I entered setup options and verified that the firmware version was A09. Since then, the computer has always started properly after a cold boot or a restart and the problem has not occurred, so it seems flashing the firmware to the A09 version solved it.

I think it's safe to conclude for now that the firmware is the cause of the problem and not the hardware. Since the problem appeared after booting in UEFI mode on a linux kernel after months of using legacy BIOS, I think an operation -such as a kernel crash- may have put the NVRAM in an invalid state. I've read on the web that Windows and linux both use the NVRAM to store crash dumps, so this may be the origin of the problem. During the various tests I performed, I booted on an EFI shell and made a dump of the smbiosview and dmpstore commands, and I compared the dumps of before and after the flash succeeded with a merge utility, but I could not spot any meaningful differences (the only differences in smbiosview were about the SKUNumber that was patched in A08 or A09; there were more differences on EFI variables in dmpstore but as I could not find any documentation on most of them -especially those DELL related- I didn't spot anything useful; I can provide those dumps if necessary).

So for now, I don't know what solved the problem exactly: is it the A09 revision that corrects a bug that existed in A07, or is it the flashing process that cleaned up something in the NVRAM? (especially since "default.rsp" contains flags such as /cvar that seems to relate to clearing persistent memory)? Any insight on the topic is welcome.

0 Kudos
tertal2
1 Nickel

RE: firmware issues on L322X

Jump to solution

I am getting this exact issue on my xps 13.  Figured I would try to update to the latest bios and am getting the same errors you did when trying to flash.  Unfortunately this is my only PC at this time as my motherboard went out on my main PC and has been RMA'd back to the company for repair so I have no way at this time to run the bios executable on another PC.  Anyone have any advice on what to do now?

0 Kudos
spellizzari
1 Copper

RE: firmware issues on L322X

Jump to solution

If you want to try out the instructions I described in my previous post, you may be able to set it up from the XPS 13 itself. As you said you get an error from the flash executable I assume you're able to boot into either Windows or DOS from the XPS.

If you can boot into Windows you can still run the update executable, let it decompress its data and follow my instructions to grab its uncompressed content from the temporary folder.

If you can only boot into DOS, you can run the flash executable, wait for it to decompress all its content and then pressing the CTRL+C combination until the program aborts. You will see it created another folder beside its executable that will contain the exact same thing the Windows version decompresses in the temporary folder. From this you should be able to follow the rest of the instructions and hopefully succeed in flashing your BIOS.

0 Kudos

RE: firmware issues on L322X

Jump to solution

I seem to be having the exact same issue, except even after 30 or more trials I cannot get it to burn the updated bios, and at this point it also will never boot even to the dell logo, even after say 30+ trials of rebooting.  

0 Kudos
bbskeelz
1 Copper

RE: firmware issues on L322X

Jump to solution

yeah, i have tried more than 30 times as well and each time i got the error that bios cannot be read.   anyone else had success with this method?

Thanks,

Sean.

0 Kudos
iluvxps13
1 Copper

RE: firmware issues on L322X

Jump to solution

Hi,

Thank you for the detailed solution to this problem. I had the exact same problem with my xps 13 (L322X) machine. Only difference being i was already on A09 BIOS. So I just updated it to A10 BIOS and this problem is fixed. 

Again, as you have mentioned it took quite a few trials to get it to read the current BIOS on boot up. Saved me the trouble of replacing the motherboard, which would have cost me around $200-$400 

Thanks again!

0 Kudos
CCARBI
1 Copper

RE: firmware issues on L322X

Jump to solution

Hi. im very in trouble to follow your instructions point 1. Im dont know how extract data in another pc. I have the same problem in my Xps , i have A03 Bios version . Couldo you guide step by step? Thanks in advance