Currently the supported hardware includes over 500 chips. Then click OK to save the changes.įlashRom is a utility for identifying, reading, writing, verifying and erasing flash chips. From the Pi’s main menu, click Preferences, click Raspberry Pi Configuration. The Pi’s SPI interface is usually disabled by default. In this case, you could theoretically use a BSS138 based logic level shifter and lower the SPI speed to around 1 MHz. WARNING: Some flash chips operate at 1.8 V and can be damaged if connected directly to the Pi. I also recommend you keep the wires under 30 cm (12 inches) because shorter wires are more reliable. I’m not sure if it is necessary but it’s recommended to remove the motherboard CMOS battery and CMOS clear jumper prior to programming. CMOS IC’s are sensitive to static electricity especially when out of circuit.ĭepending on the current draw of the motherboard it might be necessary to use an external power supply to provide 3.3 V, especially on older first generation Pi’s because their 3.3 V rails can’t source much current. An ESD mat and an anti-static wrist strap would also be prudent. I recommend you make all connections with the power off. A 3.3 V pin on the Pi is connected to the header Vcc pin. A ground from the Pi is connected to the ground on the header.
The Raspberry Pi SPI bus is comprised of chip select (CS) on GPIO 8, Master In Slave Out (MISO) on GPIO 9, Master Out Slave In (MOSI) on GPIO 10 and serial clock on GPIO 11. Additionally, the hold and write protect pins are already pulled up with 1k Ω resistors to Vcc which is required for programming. The necessary SPI pins: chips select (CS), serial clock (Sclk), slave in (SI), slave out (SO), Vcc and ground are all connected from the chip to the header. The pinout on the Vostro motherboard adheres to a standard called the SPI Universal Pin Header. I soldered a 10 position dual row male 2.54mm pin header to the unpopulated SPI port.Ī multimeter continuity test can be used to tone out the SPI header. If your motherboard doesn’t have a SPI port, it may still be possible to program the chip by using IC Test Clips to connect the Pi directly to the chip. Since the Raspberry Pi has a SPI port and the motherboard has a SPI port, in theory, it should be relatively easy to reprogram the corrupt chip. It supports reading and writing via SPI protocol. It’s an 8 megabit CMOS SERIAL FLASH chip. Raspberry Pi ESP32 MicroPython OLED Tutorial Raspberry Pi Analog Water Sensor Tutorial Raspberry Pi Graphics LCD Display Tutorial Raspberry Pi AVR Programmer & SPI Tutorial SPI is a very common communication protocol that I have featured in several of my past tutorials such as: However, to the left is an unpopulated 10 pin header labelled SPI which stands for serial peripheral interface. Looks like Dell didn’t opt for this feature. I believe the unpopulated SOP pads underneath the flash chip is where a recovery firmware chip would go. For the record, the one below is a flash memory chip which is a type of EEPROM, or it might be more accurate to say flash was developed from EEPROM.
They’re referred to as read only but it is possible to write to them using an EEPROM programmer. EEPROM’s have non-volatile memory which means their data is preserved even when the power is turned off. EEPROM stands for Electrically Erasable Programmable Read-Only Memory. Routers, TV’s, oscilloscopes, washing machines, any electronic device that supports upgrades can have re-programmable firmware.īelow is a close up of the BIOS EEPROM chip that stores the firmware. By the way, the techniques used in this tutorial are applicable to other motherboards and are not limited to Dell or even to computers. They are often located near the CMOS battery. The location of the BIOS chip is circled. Below is the Dell Vostro 410 motherboard circa 2008.
Nothing but a black screen on boot with fans running full blast. It promptly crashed and bricked the computer. I closed all open apps, disabled the AV software and ran the update.
So I downloaded the BIOS update utility from Dell’s support page.
The upgrade was only supported by the latest firmware. I wanted to upgrade the RAM on a Dell Vostro 410.