1. A method for reprogramming firmware in a physical storage controller, the physical storage controller comprising a plurality of virtual machines operating under control of a hypervisor, the method comprising: operating current firmware on a current virtual machine of the plurality of virtual machines to control the physical storage controller, wherein the current firmware processes I/O requests that are directed to the current virtual machine and that correspond with at least one storage device controlled by the current virtual machine; starting a new virtual machine of the plurality of virtual machines, while the current virtual machine is operating, to assume control of the physical storage controller, wherein the new virtual machine is adapted to operate under control of new firmware that has been updated from the current firmware, and wherein the current virtual machine and the new virtual machine reside on the physical storage controller; mapping data from a memory space of the current virtual machine into a memory space of the new virtual machine; quiescing operation of the current firmware; transferring control of the at least one storage device presently controlled by the current virtual machine to control by the new virtual machine; and operating the new firmware in the new virtual machine to control the physical storage controller and process I/O requests that are directed to the new virtual machine and correspond with the at least one storage device, wherein the hypervisor provides primitive mechanisms for inter-virtual machine communications, and wherein the current virtual machine and the new virtual machine implement a coupling driver that adapts the primitive mechanisms to a storage device driver framework supported by the plurality of virtual machines.