docs: def LoadFirmwareImage(chip, filename):
      """ Load a firmware image. Can be for ESP8266 or ESP32. ESP8266 images will be examined to determine if they are
          original ROM firmware images (ESP8266ROMFirmwareImage) or "v2" OTA bootloader images.
  
          Returns a BaseFirmwareImage subclass, either ESP8266ROMFirmwareImage (v1) or ESP8266V2FirmwareImage (v2).
      """
      with open(filename, 'rb') as f:
          if chip.lower() == 'esp32':
              return ESP32FirmwareImage(f)
          else:  # Otherwise, ESP8266 so look at magic to determine the image type
              magic = ord(f.read(1))
              f.seek(0)
              if magic == ESPLoader.ESP_IMAGE_MAGIC:
                  return ESP8266ROMFirmwareImage(f)
              elif magic == ESPBOOTLOADER.IMAGE_V2_MAGIC:
                  return ESP8266V2FirmwareImage(f)
              else:
                  raise FatalError("Invalid image magic number: %d" % magic)