To be short, firmware is a program for MCU.
Gateware is a configuration bitstream for FPGA.
And now I think it's pretty clear that these things are very different.
Weeeeeellll……
Even the FPGA manufacturers can’t agree on what it’s called, so “gateware” is certainly not established enough a term that you can decree that it is the only correct term.
As for firmware vs software, let’s review the history of the terms.
Of course we started with hardware, the hard-wired circuitry. The earliest computers were always hard-wired for a particular function.
When computers were later introduced which ran programs that first had to be loaded into working memory (what we imprecisely call RAM) to be run, and the working memory is typically initialized and blanked on startup. So software became the term for program code loaded into volatile memory from a storage medium like punch cards, punched tape, magnetic tape or disks, etc. (Or even from a paper code listing, if manually entered by the operator like on an Altair.)
When we started storing program code in read-only storage that is built into the machine (core rope memory, mask ROM, PROM, and EPROM), we coined “firmware” to mean “software that’s fixed in hardware”, with “firm” being a consistency between hard and soft. At the time the term was coined, these were truly read-only storage, with even EPROMs being programmed separately and being unalterable without removing it from the computer. So “firmware” first came to mean “program code that never changes without modifying the hardware”. In many things, we just referred to them as the ROM. And as we know, this usually was used for either low-level code in complex systems, or for all the code in little embedded systems like MCUs. (Very few complex systems used ROM for high-level code, but there are a few examples, like very early Macs, which contained most of the operating system in ROM, and just had clever mechanisms to let the OS on the disk “patch” the ROM code when changes were needed.) In a strict sense, firmware is a subtype of software.
Later, by the time EEPROMs that can be programmed in-circuit came out, the term “firmware” was already fairly established to mean “low-level code in complex systems, or all the code in little embedded systems like MCUs”, and so we kept it even after the hardware gained the capability of modifying said code. And that’s the meaning it retains to this day. It doesn’t have to mean an MCU exclusively, it can also mean the low-level code for a main CPU.
FPGAs are an interesting case, insofar as the source for the bitstream can be firmware or software. (For example, in many modern oscilloscopes the firmware contains the FPGA bitstream, but in Windows-based oscilloscopes, it can be loaded directly from the software on the boot drive.)