Storing MAC addresses is surprisingly challenging. Each address consists of only 6 bytes, but there is no standard place to store them.
A PCI network card consisting of a combined MAC/PHY or Ethernet chip often includes a EEPROM to store the MAC address. However most embedded systems do not use PCI and most embedded SoCs contain a dedicated Ethernet MAC IP block with an external PHY. Neither the SoC nor the external network chip can easily store MAC addresses despite their small size.
Modern high performance silicon chips are able to persist some data. Most notably the boot ROM code that is loaded into volatile memory on power and executed by one of the cores of the chip. That is done using read-only memory known as “mask ROM”. This process physically embeds the code into the silicon during the normal manufacturing process.
Smaller chips based on older manufacturing processes like microcontrollers often also include a small flash. Newer manufacturing processes are so heavily optimized however that flash has been separated from logic. The market for external flash is far less fractured than that of SoCs. Some modern processors integrate DRAM into a signal package.