0
\$\begingroup\$

I am reading about BIOS, which is a piece of non-volatile Firmware. Wikipedia says of firmware:

Common reasons for updating firmware include fixing bugs or adding features to the device. This may require ROM integrated circuits to be physically replaced, or flash memory to be reprogrammed through a special procedure... Firmware such as the program of an embedded system may be the only program that will run on the system and provide all of its functions.... The BIOS may be "manually" updated by a user, using a small utility program.... proprietary firmware as a security risk, saying that "firmware on your device is the NSA's best friend" and calling firmware "a trojan horse of monumental proportions".

Anyways, not much is said about how the firmware actually gets added or updated, and it all seems like a black box.

I am interested to know in more detail how the BIOS system gets installed on the "system board":

The BIOS firmware comes pre-installed on a personal computer's system board [wondering how], and it is the first software to run when powered on.... Most BIOS implementations are specifically designed to work with a particular computer or motherboard model, by interfacing with various devices that make up the complementary system chipset. Originally, BIOS firmware was stored in a ROM chip on the PC motherboard. In modern computer systems, the BIOS contents are stored on flash memory so it can be rewritten without removing the chip from the motherboard. This allows easy, end-user updates to the BIOS firmware so new features can be added or bugs can be fixed, but it also creates a possibility for the computer to become infected with BIOS rootkits. Furthermore, a BIOS upgrade that fails can brick the motherboard permanently, unless the system includes some form of backup for this case.

Basically this question is, what actually happens to get the software onto the hardware in this case. In my head I am imaging a laser engraver engraving the software into the metal somehow. That is as much as my knowledge goes, which is probably wrong. So I would like to know how to get it on there, how you install something without even the BIOS system being available to help you bootstrap your hardware.

\$\endgroup\$
1
\$\begingroup\$

See http://www.tomshardware.co.uk/forum/317934-30-bios-chip-location :

Socketed BIOS chip

The chip is some sort of Flash or EEPROM, and can be written to in essentially the same way as USB flash sticks or SD cards (maybe this is your real question?). The one shown is socketed, but the other one on that page is soldered to the motherboard.

The chips will probably be supplied programmed by their manufacturer; at the last step of the production process, they will be put in a socket or jig so they can be powered up, tested, and programmed before they're put in a tray or tape to be shipped to the assembler.

\$\endgroup\$
  • \$\begingroup\$ I assume then that, given you buy a chip with BIOS preinstalled by the manufacturer, you can still override it and install your own. Wondering if you could shed light on how that works, or where to look for more information. \$\endgroup\$ – Lance Pollard Aug 20 '18 at 13:37
  • \$\begingroup\$ From within a running PC? Yes, it's just a Flash chip. At what level would you like the process described? How Flash works? This kind of thing: community.acer.com/en/discussion/546771/flash-bios-rl85 ? \$\endgroup\$ – pjc50 Aug 20 '18 at 14:15
2
\$\begingroup\$

The BIOS is stored in reprogrammable memory, since you can update it.
This means no lasers unfortunately.

Even if lasers are involved, they do not etch the program. They might etch some bits, for a serial number or configuration. Before the chip is molded into a plastic package. If a program is read only, it will be because of mask ROM during chip manufacturing.

Motherboards are tested, instead of a dreading long full functional test directly after soldering, they have simplified it to only check the connections. Since this is the most likely fault.

To do this JTAG was invented. Which basically means that over one 20-pin connector all the big chips on the board have their pins added to a large shift register to be able to control them, and thus testing interconnects between chips.
JTAG also offers programming functionalities, as common in microcontrollers.

I do not know the exact process of motherboard production, but there are several methods are available to get initial program loaded:

  • A bed-of-nails tester/programmer either by JTAG or directly on the chip pins.
  • Pre-programmed chips from the manufacturer or distributor. Machines do this.
  • Pre-programmed or mask-rom bootloader. Via USB or UART for example.
\$\endgroup\$
  • \$\begingroup\$ Thank you. Not quite sure I'm getting how they actually get the BIOS onto the hardware. Seems like you are saying they machine it on. The last line I also don't understand the specific details of: "Pre-programmed or mask-rom bootloader." Wondering how that actually works, how the software gets put onto the hardware. \$\endgroup\$ – Lance Pollard Aug 20 '18 at 9:08
  • \$\begingroup\$ The EEPROM-style BIOS programming process is essentially like writing to a Flash stick or SD card. There ought to be a good question on here about "what is a mask ROM" but I can't find it; it's built in by the same photolithographic process that creates the chip's wiring and transistors. \$\endgroup\$ – pjc50 Aug 20 '18 at 9:42
2
\$\begingroup\$

Sounds you are missing the basic knowledge of the system operation. Here it is.

When processor or microcontroller is powered up, it looks into specific place in its address space, reads data from that space and starts executions of that data (instructions). All further actions depend on the device architecture and executable code.

From Wikipedia:

... firmware is a specific class of computer software that provides the low-level control for the device's specific hardware.

So in operating system terms firmware is a kind of driver for ther system and its devices. At later boot stage OS's drivers can get full control, or keep control of the devices through the firmware's programmable interface (see API).

I am interested to know in more detail how the BIOS system gets installed on the "system board"

BIOS and firmware is written into the chip. Contents of this chip can be read (of course), and most of the times written if chip allows it.

not much is said about how the firmware actually gets added or updated

Updating is an action of writing of new data/code into the chip I mentioned above.

what actually happens to get the software onto the hardware in this case

By installing this chip with data/code (software) onto the board. The data/code may be located within processing unit, not necessarily within dedicated memory chip.

In my head I am imaging a laser engraver engraving the software into the metal somehow.

Not sure I understand this, but generally you may engrave (write) data onto the metal bar with laser, the main question who/what and how this data can be read to be executed.

how you install something without even the BIOS system being available to help you bootstrap your hardware.

Complex systems consist of various pieces of code located in various places, thus if something has failed and code does not run you just replace the device (or update the code in their NV memory chips if it is possible).

Thus no firmware and no BIOS/UEFI containing device assumes hardware is inoperational, as any storage device to load data from also assumes driver which must be loaded from the within of hardware in the first place.

\$\endgroup\$
  • \$\begingroup\$ Thank you but I am still unclear on this part: "By installing this chip with data/code (software) onto the board." I don't see how it actually gets on the chip. \$\endgroup\$ – Lance Pollard Aug 20 '18 at 9:02
  • \$\begingroup\$ The chip is either manufactured with data already in it, or data is forcefully written to the chip at some stage of manufacturing. \$\endgroup\$ – Anonymous Aug 20 '18 at 9:19
1
\$\begingroup\$

In the past, BIOS chips had been 27C512 EPROMs, then pin-compatible 29F512 Flash ROMs. Those chips have to meet an external programmer to get the software onto them. That's also the reason why they were the only socketed DIP chips on an otherwise modern board.

About fifteen years ago, PC board manufacturers finally went away from DIP packages for that chip, but only made the step to PLCC chip casing so it still could be socketed. And that's the current state of affairs for PCs.

For other platforms, the bootloader Flash ROM is part of the SoC and is flashed through the pretty common JTAG mechanism, or through a low-pin-count programming method custom to the chip in question.

Or it just comes pre-flashed or mask programmed from the chip manufacturer. High-volume batches only, of course.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.