When you write software for an embedded device... This is firmware, this is the operating system, device drivers and any other low level routines that make the embedded system work....
Broadcom make networking gear... Most of these things have embedded linux as the kernal and web based configuation...
Basically, firmware is software that isn't expected to change much. It get's loaded into a hardware device at the point of manufacture and, in many cases, never changes again.
As opposed to software on your PC that gets loaded when used, unloaded, something else gets loaded, reloaded, etc.
From a do178 and do256 point of view there is no such thing as "firmware" its either software or hardware.
either code describes a hardware implementation (ie vhdl/verilog before being laid out on a chip) or the code itself is executed in some form of uP.
Broadcom probably uses a lot of SOC or "System on a Chip" type of devices and would includes some sort of RTOS (Real Time Operating System). An example of an RTOs is LynxOS https://en.wikipedia.org/wiki/LynxOS
You might find this sort of OS in avionics, a satellite and possibly a car.
How many Firmware Engineers does it take to change a light bulb? None. It's a hardware problem
Broadcom makes chips. So, firmware is either the chips software or the chips software support. The device driver, Broadcom generally only releases binaries for their drivers.
So, weather your talking about a GSM modem, 3G/4G modem, Ethernet, Bluetooth or WIFI, those chip(s) need internal code. At the same time Android, Windows CE or iOS is also firmware, but at a different level.
So, there is the System in a Chip type of thing and the "glue" program or the device driver. The OEM under a confidentiality agreement generally gets to know how to talk to the chip.