I recently acquired a broken Dell XPS15 9530. As far as I’ve been told, the BIOS got corrupted during an update. As my research suggests, this is quite a common problem with this laptop.
I am going to try reflash a working bios in order to make it work again. After all, it has some nice specs.
The very first attempt at making this laptop work was to create an USB drive with the BIOS files as adviced by James White in his blog: I had no luck at this.
In my second attempt I have been taking advantage of Raspberry PI’s SPI interface to try and reflash the chip using the awesome flashrom. Tldr, flashrom is a program that knows hw to handle many ROM chip programmers and how to handle many ROM chips.
I am using a pair of Soic8 test clips.
Before doing anything, I careflully unplugged the system battery as well as the CMOS battery. And the power supply, of course. Note: some people on the internet advice to use the power supply and leave it plugged in to power the flash chip instead of using the Raspberry PI 3.3V pin. I am not sure I want to try this.
So far (March 19th) I had no luck using the Raspberry PI as flash programmer. But the problem might lie in my Raspberry PI: it’s a second-hand unit and has always worked a bit… unreliably. In fact when using flashrom I’ve been noticing some warnings among the output message that I didn’t see in the output posted online by other people, such as:
Calibrating delay loop... delay loop is unreliable, trying to continue OK.
I will try trying with another Raspberry PI, if I can find someone kind enough to lend me.
Update (March 21st, 2016): Today I tried again.
I tried leaving the 3.3V pin unplugged but plugging in the power supply connected, so that the BIOS chip. No success with this too.
By the way, I left my Raspberry PI powered the whole weekend in a laboratory, and when I came back and tried again. This time i received no delay calibration error, but still didn’t work. The PI was still booted at the operating frequency of 50Mhz.
I rebooted at 800MHz, after all I tried underclocking my Raspberry PI but not overclocking it.
This time I got some success, and in some attempts at running I got this output:
root@raspberrypi:~# flashrom -p linux_spi:dev=/dev/spidev0.0 flashrom v0.9.9-r1954 on Linux 4.1.19+ (armv6l) flashrom is free software, get the source code at https://flashrom.org Calibrating delay loop... delay loop is unreliable, trying to continue OK. Found Generic flash chip &quot;unknown SPI chip (RDID)&quot; (0 kB, SPI) on linux_spi. === This flash part has status NOT WORKING for operations: PROBE READ ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to email@example.com if any of the above operations work correctly for you with this flash chip. Please include the flashrom log file for all operations you tested (see the man page for details), and mention which mainboard or programmer you tested in the subject line. Thanks for your help! No operations were specified. root@raspberrypi:~#
I am not sure how to interpret this message, and I am going to ask on the flashrom mailing list. It might be the case that this chip is not yet supported and I might try and add support for this chip. It would be kinda cool.
End of updates.
Notes for this attempt
- I am using a freshly-installed raspbian linux system
- I built flashrom from sources.
- output of “uname -a” is: “Linux raspberrypi 4.1.19+ #853 Wed Mar 9 18:04:48 GMT 2016 armv6l GNU/Linux”
- The modules spidev and spi_bcm2708 seems to be built into the kernel, as devices appear in /dev but modprobing such modules results in an error.
- I tried lowering the RaspberryPI operating frequence (in /boot/config.txt) at 400MHz, 200Mhz and even 50Mhz. The delay loop calibration warning still persists.
- (unrelated) at 200MHz the ssh session is still reasonably responsive on the PI, but at 50MHz you really feel the difference.
Other things I should try
- Use another RaspberryPi
- Write on the flashrom mailing list, check whether it is okay that modprobing spi modules fails but devices appear anyway (it should be fine)
Links for this attempt
Here are some links about guides I’ve tried/followed/read and that you might want to try or give a look:
- [Guide] Recover from failed BIOS flash using Raspberry PI (from the win-raid.com forum)
- RaspberryPI notes from the flashrom wiki
- Common problems when using flashrom
- In-System Programming from the flashrom wiki
While I am not done with the second attempt, I did some brainstorming on what else I could try.
Another strategy I came up with for the third attempt is to use a Bus Pirate:
The Bus Pirate is an open source hacker multi-tool that talks to electronic stuff. It’s got a bunch of features an intrepid hacker might need to prototype their next project.
Long story short, I could use it as a better programmer when using flashrom.
I am currently looking for someone to lend me a Bus Pirate board, and I might have found someone to go ask for it.
The last attempt I plan to do is replacing the whole chip. I have discovered that there are some companies that will sell you a replacement bios chip, already programmed with a bios for your machine.
I alredy acquired a replacement BIOS chip, but did not proceed with replacement for the following reason:
- I don’t have all of the necessary tools.
- It is quite a delicate process (did I mention the BIOS chip is a soic8 chip?)
- I have never done anything similar
- It is quite an invasive process
- There are other components very close to the BIOS chip and it would be super easy to mess them (CONGRATS DELL ENGINEERS!)
For such reasons I am considering this the last attemp and I will seek some help/guidance when doing this.
The backup plan is simply tearing the whole laptop apart and selling it parts on eBay or something. I basically have all of the parts, minus the mother board (the cpu might be working).
Links and stuff
UPDATE: Epilogue of the story
The story ends with me selling the laptop and closing the whole thing having lost about 30€ plus the cost of the tools i have acquired (flat cable, bios chip, soic-8 clip).
I also have to say that I tried contacting the Dell support since the XPS was still under warranty, but they refused even to talk about doing anyting unless I was able to produce the receipt of the purchase of the laptop. Having bought it third-hand and for spares, I obviously had no way to produce such documentation.
I have recovered pretty much all of the money I had spent on that laptop, but dealing with the Dell support was an interesting experience. I have learnt that unless you are the original buyer of a laptop or you made sure the purchase receipt was given to you when buying a second-hand laptop, there is basically no way to get assistance for your laptop, at least not in Italy. This is one of the things you should really keep in mind while considering an used Dell laptop.
On the other hand, I had an awesome experience dealing with Lenovo assistance (actually performed by IBM in Italy, but this is another story). Basically, when I had top send in my X220, they only required the serial number of the laptop. Nothing more. This is another reason why you should buy ThinkPads, even when buying used hardware. Also, Lenovo care was super-fast and super-efficient. ThinkPads are really worth their price.