[[PageOutline]] = The Problem = I have got a Dell Inspiron 17 3721 laptop which does not turn-on anymore. Only a single beep error code, nothing on the screen. Beep code 1 means: "Motherboard: BIOS ROM Failure". [[Image(dell_inspirion_beep_codes.png)]] Source: https://www.dell.com/support/kbdoc/en-us/000132041/understanding-beep-codes-on-a-dell-notebook-pc#inspiron-laptop = The Idea = A corrupt BIOS ROM, how-to repair? The BIOS chips are SPI based EEPROMs of type SOIC8, which are most likely became corrupted somehow. [https://bios-fix.com/index.php?threads/dell-inspiron-3721-bios-schematic-boardview.38189/ Looking around at bios-fix.com] there are two chips which needs to be flashed. Digging through my pile of hardware a have a buspirate v3 which I could use to re-program the BIOS chips. * I need to be able to access the chips. The [https://downloads.dell.com/Manuals/all-products/esuprt_laptop/esuprt_inspiron_laptop/inspiron-17-3721_Owner%27s%20Manual_en-us.pdf Owner manual] is a good source for opening the laptop. * De-soldering the BIOS. * A SOIC8 test clip is required with good quality cables. [http://www.dangerousprototypes.com/docs/Flashing_a_BIOS_chip_with_Bus_Pirate#SOIC8_test_clip The guide at dangerousprototypes.com] will help me make one. * Flashrom software on Windows using MSYS2, using [https://www.flashrom.org/dev_guide/building_from_source.html#windows build from source guide at flashrom.org]. * I need up2date firmware on the buspirate to program the chip, using: * [https://maidavale.org/blog/flashing-the-bus-pirate/] * [https://dangerousprototypes.com/docs/Bus_Pirate#Firmware_upgrades] * tooling found at [https://github.com/therealdreg/buzzpirat] * Next I need to flash the chips, using a little inspiration from: * [https://www.nsideattacklogic.de/en/dumping-spi-flash-memory-of-embedded-devices-2/] * [https://winraid.level1techs.com/t/guide-flash-bios-with-ch341a-programmer/32948/56] * [http://www.dangerousprototypes.com/docs/Flashing_a_BIOS_chip_with_Bus_Pirate] * [https://kean.com.au/oshw/WR703N/teardown/] = The Implementation = == BIOS ROM images == First challenge find the BIOS ROMs which I could flash on the chips. I have tried to extract them from the official BIOS download page [https://www.dell.com/support/home/en-us/drivers/driversdetails?driverid=70h05 Dell Inspiron 3721 System BIOS - A14, 3721A14.exe] how-ever I was not able to extract the required files. I found at older version at [https://support.halabtech.com/index.php?a=downloads&b=file&id=775322 halabtech.com - Dell Inspiron 17 3721 A12 Bios Files.zip] which I will use and later update to the A14 version. == Get both BIOS chips == Dis-assemble laptop using Owner Manual and de-solder BIOS chips located at UH2 (EN25QH16) and UH6 (EN25Q32B). [[Image(UH2.jpg, 120px)]] [[Image(UH2.jpg, 120px)]] == Compiling flashrom for Windows == ``` # Install using https://www.msys2.org and load the UCRT64 environment https://www.msys2.org/docs/environments/ $ pacman -Syu $ pacman -Sy mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-meson mingw-w64-ucrt-x86_64-ninja mingw-w64-ucrt-x86_64-pkg-config mingw-w64-ucrt-x86_64-python-sphinx mingw-w64-ucrt-x86_64-cmocka mingw-w64-ucrt-x86_64-libusb mingw-w64-ucrt-x86_64-libftdi mingw-w64-ucrt-x86_64-libjaylink $ pacman -S base-devel binutils git pactoys cc libusb meson pkg-config # $ git clone https://github.com/flashrom/flashrom.git 10 git clone https://github.com/flashrom/flashrom.git 11 cd flashrom/ 13 meson setup builddir 14 meson compile -C builddir ``` == Updating BusPirate == ``` $ git clone https://github.com/therealdreg/buzzpirat.git $ cd buzzpirat/bin # Ensure jumper between PGD and PGC before powering-on BusPirate $ ./buzzloader/pirate-loader.exe --dev=COM4 --hex=./oldfirm/BPv3-bootloader-upgrade-v4xtov4.5_Sep-2020_USBEprom.hex --verbose # 'Error updating firmware :(' is expected and 'normal' behaviour. $ ./buzzloader/pirate-loader.exe --dev=COM4 --hex=./stablefirm/bpv3comp/BPCOMPBZ-firmware-v7.1.12.hex # 'Error updating firmware :(' is expected and 'normal' behaviour. # FYI: plink.exe is part of Putty CLI, download at https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html $ plink.exe -serial COM4 -sercfg 115200,8,2,1,n # Press 'i' + 'Enter' to check for new firmware version ``` == Flashing de-soldered chips == ``` # In MYS2 UCRT64 environment $ cd flashrom # Connect EN25QH16 chip to SOIC8 test-clip $ ./builddir/flashrom.exe --programmer buspirate_spi:dev=COM4 -w 2MB\ \ EC\ \ .BIN --progress # Connect EN25Q32 chip to SOIC8 test-clip $ ./builddir/flashrom.exe --programmer buspirate_spi:dev=COM4 -w 4MB\ BIOS.BIN --progress = The Result =