A wireless charger for charging a chargeable device over a wireless communication link, the wireless charger comprising: a communication circuit including a first transceiver, a power converter, and a first coil, wherein the first coil is configured to create an electromagnetic field to transfer energy over the wireless communication link to a second coil in the chargeable device; a memory, coupled to the communication circuit, and including a first memory segment for storing a boot program, a second memory segment for storing a first version of a firmware program, and a third memory segment for storing a second version of the firmware program; and a processor coupled to the communication circuit and the memory, wherein the processor is configured to operate based on a selected one of the first and second versions of the firmware program stored in the memory, wherein: the communication circuit is configured to receive the second version of the firmware program from the chargeable device, by way of the wireless communication link, and store the second version of the firmware program in the third memory segment of the memory; the processor is configured to select between the first and second versions of the firmware program based on which of the second and third memory segments was most recently updated; the processor is further configured to operate based on the first version of the firmware program during reception of the second version of the firmware program; the processor is further configured to identify a point of interruption where reception of the second version of the firmware program is interrupted when the wireless communication link disconnects, wherein a first set of data-packets of the second version of the firmware program is received by the communication circuit till the point of interruption, and the processor is further configured to resume reception of the second version of the firmware program from the point of interruption, when the wireless communication link re-establishes, for receiving remaining sets of data-packets of the second version of the firmware program. a communication circuit including a first transceiver, a power converter, and a first coil, wherein the first coil is configured to create an electromagnetic field to transfer energy over the wireless communication link to a second coil in the chargeable device; a memory, coupled to the communication circuit, and including a first memory segment for storing a boot program, a second memory segment for storing a first version of a firmware program, and a third memory segment for storing a second version of the firmware program; and a processor coupled to the communication circuit and the memory, the communication circuit is configured to receive the second version of the firmware program from the chargeable device, by way of the wireless communication link, and store the second version of the firmware program in the third memory segment of the memory; the processor is configured to select between the first and second versions of the firmware program based on which of the second and third memory segments was most recently updated; the processor is further configured to operate based on the first version of the firmware program during reception of the second version of the firmware program; the processor is further configured to identify a point of interruption where reception of the second version of the firmware program is interrupted when the wireless communication link disconnects, wherein a first set of data-packets of the second version of the firmware program is received by the communication circuit till the point of interruption, and the processor is further configured to resume reception of the second version of the firmware program from the point of interruption, when the wireless communication link re-establishes, for receiving remaining sets of data-packets of the second version of the firmware program.