<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_firmware(self, file, data=None, progress=None, bank=None):
 """Send file to BMC to perform firmware update :param filename: The filename to upload to the target BMC :param data: The payload of the firmware. Default is to read from specified filename. :param progress: A callback that will be given a dict describing update process. Provide if :param bank: Indicate a target 'bank' of firmware if supported """

        self.oem_init()
        if progress is None:
            progress = lambda x: True
        return self._oem.update_firmware(file, data, progress, bank)