A Fibre Channel controller shareable by a plurality of operating system
domains (OSDs) is disclosed. The controller includes a programming
interface, located within a system load-store memory map of each OSD by
which the OSDs request the controller to perform I/O operations with
remote FC devices. The programming interface includes a distinct
control/status register (CSR) bank for each of OSD. The OSDs execute
load-store instructions addressed to the programming interface to request
the I/O operations. Selection logic selects as a target of each of the
load-store transactions the distinct CSR bank for the OSD that executed
the corresponding load-store instruction. An FC port obtains a distinct
FC port identifier for each OSD and transceives FC frames with the remote
FC devices using the distinct FC port identifier for each OSD in response
to the I/O operation requests. In one embodiment, multiple blade servers
share the controller via a shared I/O switch.