1 of 1 people found this helpful
How do you definition firmware?
A basic definition would be:
Firmware is any code that gets loaded to control the hardware.
A driver is code that interacts with the firmware to control the hardware
An OS is code that calls the drivers to interact with the firmware to control the hardware.
An Application is code that preforms a function but direction the OS to call it's drivers to interact with the firmware to control the hardware.
A Hypervisor is code sits between firmware and the OS drivers and mimics firmware \ hardware and lies to everyone.
(Don't ask where EFI falls, I would call it an emdeded OS.)
BIOS is a compileation of multiple pieces of code that controls the hardware making it a form of firmware.
Firmware code can be contained within the BIOS package or can be separate flash packages depending on how the manufacturer set up his code.
To name a few pieces of firmware in the system ( mostly those in blue are contained within the BIOS flash at Intel):
- BIOS core code
- BIOS specialization code
- BMC code
- Remote management module code
- FRUSDR code
- ME code
- Hot Swap back plane
- SAS expander
- Embed RAID controllers code
- Processors microcode
- NIC PXE option rom code
- Memory Reference code
- Video controller code
- Audio controller code
- PLD's (Programmable Logic Devices) which also contain code to configure the device to perform the desired function.
- Since the newer chipsets contain a bunch of special devices, I am sure that a piece of code (firmware) from the chipset maker specific to the chipset in the BIOS someplace so that everyone is using the same source code.
About every add in card has some kind of firmware code.
(I am sure there are a few more)
All of which add up to why I stick to hardware and stay as away from code as I can.
- BIOS core code
Thanks for the authoritative and thorough reply Doc, Thank You.
My definition of firmware may not be the point, but is code that is specifically used to cause a device to function, with minimal interaction with it's outside world, and is installed on the device itself.
To simplify things and let me cut this short as at the moment, I'll focus on one thing and ask this, does an ICH10R have any other program besides the drivers it can use that are required for it to function. That is as close to firmware as I can get... as I am being called to head out into a snowy world...
1 of 1 people found this helpful
I am not an Intel guru so I will just add my dodgy 2 cents worth.
Essentially a chip is “hardware” and code is “software” so code located in a chip is something in-between thus “firmware”
The term "firmware" comes from the fact that the code is usually in something tangible such as a flash programmable chip while software was code loaded later such as the OS and programs from floppies, tapes or drives. Code on old drives floppies and tapes were soft and intangible thus the name "software". The terms firm and soft really is an archaic indicator to where the code was located. Certainly any code that was permanently contained in a programmable chip on the circuit board was known as firmware and further code loaded from elsewhere was software.
A chipset is part FPGA ( Field Programmable Gate Array) which would have the code programmed in either a flash within it or an external flash chip read immediately after it was powered up. This allows the FPGA to have almost infinite configurations and functionality (but obviously constrained by its implementation). Thus this code would be firmware as the code defines the function and operation of the chip (hardware) and is either contained on the circuit board within one chip or another. An example would be the keyboard controller, which is now imbedded (contained) within the chipset but in the old day was actually a standalone programmable microcontroller, with it's own individual code ie. Firmware.
Just to be confusing this type of firmware is not the same as the firmware defining the BIOS. The chipset's firmware defines how the chips works electrically while the BIOS defines the framework of how external devices interface with the chipset and motherboard.
The BIOS is like a Basic operating system on the motherboard which is relatively uniform so that software vendors can access the motherboard and peripherals for their OS's such as: Linux, Novel, FreeBSD, Windows, etc. Thus the BIOS is firmware. “Drivers” interface the OS with the BIOS, but often we usually think of drivers as supplied but the vendor. Vendor drivers are additional code to add functionality to non-standard parts of the BIOS but again are specifically written for the OS in question and thus loaded with the OS. So drivers are software. What is not obvious is that peripheral such as LANs and Video cards have their own BIOS (firmware) and consequentially drivers (software). If the BIOS is the industry standard then often no additional further drivers are necessary.
If someone was to state that a firmware upgrade for the chipset was imminent, I would either expect a newer revision of BIOS or a new revision of Chipset requiring the purchase of a later motherboard altogether.
From my experience reflashing the FPGA via a BIOS reflash is rare but not impossible but only someone from Intel would be able to give a definitive answer as to the design of the board. A minor mistake in reflashing an FPGA could permanently damage a board so this fuctionality is usually avoided.
"From my experience reflashing the FPGA via a BIOS reflash is rare but not impossible..."
Thanks for your lengthy response Bumper, and your statement above is a hint at what I was seeking for an answer. If what you are saying is correct, that in a standard BIOS flash, other chips than the BIOS CMOS chip can have it's firmware updated (assuming it has one) that implies that chips like an ICH10R have code stored in it (a necessity of code being firmware IMO.)
Basically, I am just trying to educate myself, partially for the purpose of discussing a statement made in another manufactures forum. As I mentioned in my initial post, I had never heard of chipsets used on mother boards having their own firmware, that is separate and different then driver code. I consider msahci or iaStor drivers, that are stored on the system drive. Firmware exists on devices such as an Intel SSD, and don't usually have names that we refer to, such as the Intel SSD firmware update called "011102M388208850.ISO", which of course contains more than the firmware itself.
Frankly, a post I read said a mother board manufacture (not Intel) told a customer that they were expecting a firmware update for the poorly performing Marvell 9128 SATA interface chip. Not a driver, but firmware. I though that was odd, and sent me on a search for chipset firmware. I have never seen any type of update described as a chipset firmware change, or anything along those lines in a BIOS release notes.
I was hoping for a simple yes or no response to this, but it's likely not that simple.
Thanks all, and I'm off to do some more research.
Yes, Virginia Parsec, there is a Santa Claus!
Where the code is in the BIOS or stand-alone. It could be called firmware.
But to make you even happier, The ICH10 and the chipset (5500) contains the ME (management engine) which is a tiny controller in its own right and has a mess of code to make it function that has nothing to do with the BIOS. (I am not aware of any ME code updates pending either, but I try to stay away form code. It gives me a headache)
Well thank you Santa, you were late... uhh, make that early (very) this year, but that is fine with me.
I also discovered that chipset firmware is usually if not always accomplished via or along with a BIOS update that may contain updates besides the firmware microcode.
That seems to answer my underlying question, if the chipset manufacture will directly supply a firmware update. If it is contained within a BIOS update, they won't be providing it, the mother board manufacture will, albeit indirectly. So the mother board support person that said the chipset manufacture will supply the firmware update is either ignorant, lying, or just made up an excuse to put-off the question. I would guess either the first or last possibility.
Good evening .. please excuse me being redundant, but I'm trying to understand if the X58 chipset uses firmware according to my simple definition of firmware ,,, I didn't see the answer that can help me in the replies above ..
"They were not talking about a driver program, but a firmware update for a chipset."
I simplistically consider "firmware" as code that doesn't travel .. ie. not reliant on the existing storage container (drive) to continue to operate.
Not to argue semantics ..
Do I have to reload the X58 chipset update on my Asus Rampage genie IIl motherboard with a X58 chipset when I pull the drive and install a new drive with a clean install OS?
thanks for any help you might render
The chipset has FW code and the chipset required drivers.
The FW code is normally part of the BIOS so would not be impacted by changing the HDD
The Drivers reside on the HDD in support of the OS and do need to be reloaded or Updated after changing the HDD.
When is see "Chipset Update" i generally think drivers and you would need to reload the drivers.
Asus's terms may vary so i can't give you any better than that and the recommendation to check with Asus for specifics on what they are doing.
If it is FW updating it again should not hurt anything.
If it is drivers, you should update them.