not to be pedantic but you're partially right....Firmware is software that controls the physical object, like printer drivers controlling printers. "Software" is higher-level software that tells the firmware what to do: what to control and how much, what direction, whatever. Software may be frequently updated, firmware much less frequently, maybe never depending on the object because the physical object doesn't usually change. BIOS in computers is an example of firmware. It became clear to me that the ordinary software update to 40.50.1 had not worked and was not going to work. That's why I was so pleased when they said they had sent firmware for updating...entirely different thing.
we throw around the use of "firmware" and "software" so frequently these days, they've lost their meaning.
firmware is stored within the ROM (read-only memory) of an appliance (printer, phone, car, etc) and controls the behavior of the device. this could include feature-sets, built-in software (read: things you cannot change, like the Android OS) and functionality and before someone argues with me that you can't change components of an Android OS, you could theoretically delete the entire OS, but once you factory reset the device, everything will come back (unless you muck with the partition).
software includes drivers, operating systems, applications, etc., etc.that are stored in RAM, disk, etc.
a driver is a method (software) to INTERFACE with a physical device. many times you don't even need the driver to talk to a physical device as there is basic enough instruction to communicate, as long as you have a standard communication method.
to add to the confusion - a PC will generally have a BIOS that provides instructions for the computer to interface with the installed hardware. when we talk about appliances like phones, routers and cars, we generally refer to this as the FIRMWARE of the device. for a PC, the OS is separate from the basic instructions of a BIOS and could change at any time. for an appliance/device, the OS is generally written within the device and does not change (or at least, they didn't used to change as frequently).
my router receives firmware updates. the OS is included within those updates. my android phone receives monthly OTA updates. these are firmware updates as well, but may also include additional software.
vehicles are no exception to this - ICE vehicles have employed ECU "appliances" that control quite a bit within the vehicle this is nothing new. the only real difference is, Tesla tends to update their software more frequently than any other automotive manuf. in the past. additionally, we don't really know how many components/devices/etc., are being updated each time we receive an update. i have had issues fixed with previous vehicles because of a firmware update after a visit to the dealership (or aftermarket ECU components).
from all accounts, each update we receive is a firmware update. however there are GIT repositories and the OS is built on a LINUX platform. someone with more experience would have to chime in on exactly what is contained in the software packages, how they're written and what happens during unpacking. these are all things I've yet to research or uncover.