US8566573B1 - Selectable initialization for adapters - Google Patents

Selectable initialization for adapters Download PDF

Info

Publication number
US8566573B1
US8566573B1 US12/941,621 US94162110A US8566573B1 US 8566573 B1 US8566573 B1 US 8566573B1 US 94162110 A US94162110 A US 94162110A US 8566573 B1 US8566573 B1 US 8566573B1
Authority
US
United States
Prior art keywords
initialization
ism
adapter
sequences
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US12/941,621
Inventor
Ying Ping Lok
Zhenghao Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marvell Asia Pte Ltd
Original Assignee
QLogic LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by QLogic LLC filed Critical QLogic LLC
Priority to US12/941,621 priority Critical patent/US8566573B1/en
Assigned to QLOGIC, CORPORATION reassignment QLOGIC, CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LOK, YING PING, ZHANG, ZHENGHAO
Application granted granted Critical
Publication of US8566573B1 publication Critical patent/US8566573B1/en
Assigned to JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT reassignment JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: QLOGIC CORPORATION
Assigned to Cavium, Inc. reassignment Cavium, Inc. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: QLOGIC CORPORATION
Assigned to QLOGIC CORPORATION, CAVIUM, INC, CAVIUM NETWORKS LLC reassignment QLOGIC CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Assigned to CAVIUM, LLC reassignment CAVIUM, LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: Cavium, Inc.
Assigned to CAVIUM INTERNATIONAL reassignment CAVIUM INTERNATIONAL ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM, LLC
Assigned to MARVELL ASIA PTE, LTD. reassignment MARVELL ASIA PTE, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM INTERNATIONAL
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Definitions

  • the present invention relates to computing systems.
  • a computer network often simply referred to as a network, is a group of interconnected computers and devices that facilitates communication among users and allows users to share resources.
  • a computing system typically uses initialization instructions to begin operations. Continuous efforts are being made to improve initialization operations.
  • One of the present embodiments comprises a machine-implemented method for enabling an adapter coupled to a computing system to be initialized according to one of a plurality of initialization sequences based upon a user selection.
  • the computing system includes a processor for executing processor-executable instructions and a plurality of registers for storing information.
  • the method comprises system BIOS (basic input/output system) of the computing system loading an initialization selector module (ISM) into system memory.
  • the method further comprises the system BIOS calling an entry point for the ISM and saving the information stored in the registers in the system memory.
  • the method further comprises the ISM allocating a portion of the system memory and copying itself to the allocated memory portion.
  • the method further comprises the ISM reading a user selection of one of the plurality of initialization sequences.
  • the method further comprises the ISM reading code of the selected initialization sequence and copying the code to an initial segment of the system memory.
  • the method further comprises the ISM restoring the information stored in the registers and executing the selected initialization sequence.
  • the method further comprises the selected initialization sequence removing the ISM from the system memory.
  • the method further comprises the selected initialization sequence beginning normal execution.
  • Another of the present embodiments comprises a machine-readable storage medium storing executable instructions, which when executed by a computing system, cause the computing system to perform a process for enabling an adapter coupled to the computing system to be initialized according to one of a plurality of initialization sequences based upon a user selection.
  • the computing system includes a processor for executing processor-executable instructions and a plurality of registers for storing information.
  • the process comprises system BIOS (basic input/output system) of the computing system loading an initialization selector module (ISM) into system memory.
  • the process further comprises the system BIOS calling an entry point for the ISM and saving the information stored in the registers in the system memory.
  • the process further comprises the ISM allocating a portion of the system memory and copying itself to the allocated memory portion.
  • the process further comprises the ISM reading a user selection of one of the plurality of initialization sequences.
  • the process further comprises the ISM reading code of the selected initialization sequence and copying the code to an initial segment of the system memory.
  • the process further comprises the ISM restoring the information stored in the registers and executing the selected initialization sequence.
  • the process further comprises the selected initialization sequence removing the ISM from the system memory.
  • the process further comprises the selected initialization sequence beginning normal execution.
  • FIG. 1 is a functional block diagram of a computing system coupled to a network through an adapter
  • FIG. 2 is a functional block diagram of an adapter
  • FIG. 3 is a functional block diagram of a memory device including a plurality of initialization sequences
  • FIG. 6 is a functional block diagram of a memory device illustrating contents of the memory at another point of a method according to the present embodiments
  • FIG. 7 is a functional block diagram of a memory device illustrating contents of the memory at another point of a method according to the present embodiments.
  • FIG. 8 is a functional block diagram of a memory device illustrating contents of the memory at another point of a method according to the present embodiments.
  • FIG. 9 is a flowchart illustrating a method according to the present embodiments.
  • any of the embodiments described with reference to the figures may be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations.
  • the terms “logic,” “module,” “component,” “system” and “functionality,” as used herein, generally represent software, firmware, hardware, or a combination of these elements.
  • the terms “logic,” “module,” “component,” “system,” and “functionality” represent program code that performs specified tasks when executed on a processing device or devices (e.g., CPU or CPUs).
  • the program code can be stored in one or more computer readable memory devices.
  • the illustrated separation of logic, modules, components, systems, and functionality into distinct units may reflect an actual physical grouping and allocation of software, firmware, and/or hardware, or can correspond to a conceptual allocation of different tasks performed by a single software program, firmware program, and/or hardware unit.
  • the illustrated logic, modules, components, systems, and functionality may be located at a single site (e.g., as implemented by a processing device), or may be distributed over a plurality of locations.
  • machine-readable media refers to any kind of medium for retaining information in any form, including various kinds of storage devices (magnetic, optical, static, etc.).
  • Machine-readable media also encompasses transitory forms for representing information, including various hardwired and/or wireless links for transmitting the information from one point to another.
  • the embodiments disclosed herein may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer-readable media.
  • the computer program product may be computer storage media, readable by a computer device, and encoding a computer program of instructions for executing a computer process.
  • the computer program product may also be a propagated signal on a carrier, readable by a computing system, and encoding a computer program of instructions for executing a computer process.
  • FIG. 1 is a block diagram of a system 10 configured for use with the present embodiments.
  • the system 10 includes a computing system 12 (may also be referred to as “host system 12 ”) coupled to an adapter 14 that interfaces with a network 16 .
  • the network 16 may include, for example, additional computing systems, servers, storage systems, etc.
  • the computing system 12 may include one or more processors 18 , also known as a central processing unit (CPU).
  • the processor 18 executes computer-executable process steps and interfaces with a computer bus 20 .
  • An adapter interface 22 facilitates the ability of the computing system 12 to interface with the adapter 14 , as described below.
  • the computing system 12 also includes other devices and interfaces 24 , which may include a display device interface, a keyboard interface, a pointing device interface, etc.
  • the computing system 12 may further include a storage device 26 , which may be for example a hard disk, a CD-ROM, a non-volatile memory device (flash or memory stick) or any other device.
  • Storage 26 may store operating system program files, application program files, and other files. Some of these files are stored on storage 26 using an installation program.
  • the processor 18 may execute computer-executable process steps of an installation program so that the processor 18 can properly execute the application program.
  • Memory 28 also interfaces to the computer bus 20 to provide the processor 18 with access to memory storage.
  • Memory 28 may include random access main memory (RAM).
  • RAM random access main memory
  • the processor 18 When executing stored computer-executable process steps from storage 26 , the processor 18 may store and execute the process steps out of RAM.
  • Read only memory (ROM, not shown) may also be used to store invariant instruction sequences, such as start-up instruction sequences or basic input/output system (BIOS) sequences for operation of a keyboard (not shown).
  • BIOS basic input/output system
  • a link 30 and the adapter interface 22 couple the adapter 14 to the computing system 12 .
  • the adapter 14 may be configured to handle both network and storage traffic.
  • Various network and storage protocols may be used to handle network and storage traffic. Some common protocols are described below.
  • Ethernet One common network protocol is Ethernet.
  • the original Ethernet bus or star topology was developed for local area networks (LAN) to transfer data at 10 Mbps (mega bits per second).
  • Newer Ethernet standards for example, Fast Ethernet (100 Base-T) and Gigabit Ethernet) support data transfer rates between 100 Mbps and 10 Gbps.
  • the descriptions of the various embodiments described herein are based on using Ethernet (which includes 100 Base-T and/or Gigabit Ethernet) as the network protocol.
  • the adaptive embodiments disclosed herein are not limited to any particular protocol, as long as the functional goals are met by an existing or new network protocol.
  • Fibre Channel is a set of American National Standards Institute (ANSI) standards that provide a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others.
  • Fibre Channel supports three different topologies: point-to-point, arbitrated loop and fabric.
  • the point-to-point topology attaches two devices directly.
  • the arbitrated loop topology attaches devices in a loop.
  • the fabric topology attaches computing systems directly (via HBAs) to a fabric, which are then connected to multiple devices.
  • the Fibre Channel fabric topology allows several media types to be interconnected.
  • Fibre Channel fabric devices include a node port or “N_Port” that manages Fabric connections.
  • the N_port establishes a connection to a Fabric element (e.g., a switch) having a fabric port or F_port.
  • a Fabric element e.g., a switch
  • FCOE Fibre Channel Over Ethernet
  • SAN storage area network
  • FCOE adapter 14 may be configured to operate as an FCOE adapter and may be referred to as FCOE adapter 14 .
  • QLogic Corporation the assignee of the present application, provides one such adapter.
  • the illustrated adapter 14 does not limit the scope of the present embodiments.
  • the present embodiments may be practiced with adapters having different configurations.
  • the adapter 14 interfaces with the computing system 12 via the link 30 and a host interface 32 .
  • the host interface 32 may be a Peripheral Component Interconnect (PCI) Express interface coupled to a PCI Express link.
  • the adapter 14 may also include a processor 34 that executes firmware instructions out of memory 36 to control overall adapter 14 operations.
  • the adapter 14 may also include a processor 34 that executes firmware instructions out of memory 36 to control overall adapter operations.
  • the adapter 14 may also include storage 37 , which may be for example non-volatile memory, such as flash memory, or any other device.
  • the storage 37 may store executable instructions and operating parameters that can be used for controlling adapter operations.
  • the adapter 14 includes a network module 42 for handling network traffic via a link 50 .
  • the network interface 42 includes logic and circuitry for handling network packets, for example, Ethernet or any other type of network packets.
  • the network module 42 may include memory buffers (not shown) to temporarily store information received from other network devices 54 and transmitted to other network devices 54 .
  • the adapter 14 may also include a storage module 46 for handling storage traffic to and from storage devices 56 .
  • the storage interface 44 may further include memory buffers (not shown) to temporarily store information received from the storage devices 56 and transmitted by the adapter 14 to the storage devices 56 .
  • the storage module 46 is configured to process storage traffic according to the Fibre Channel storage protocol, or any other protocol.
  • the adapter 14 also includes a network interface 52 that interfaces with a link 50 via one or more ports (not shown).
  • the network interface 52 includes logic and circuitry to receive information via the link 52 and pass it to either the network module 42 or the storage module 46 .
  • the adapter 14 may use one or more functions 60 , 62 , 64 , 66 , labeled as function 0 ( 60 ), function 1 ( 62 ), function 2 ( 64 ) and function 3 ( 66 ). While four functions are illustrated, the adapter 14 may include any number of functions.
  • the functions 60 , 62 , 64 , 66 may be, for example, Peripheral Component Interconnect (PCI) Express functions (referred to herein as PCI functions), or any other type of functions.
  • PCI functions is a logical device for the adapter 14 .
  • a PCI function may include a set of standardized PCI control/status registers, which a driver in the computing system 12 uses to communicate with the adapter 14 , and user-defined logic (control path, data path, processors and others) that is associated with those registers.
  • a PCI function may be a subset of a PCI Express device.
  • BIOS The Basic Input/Output System
  • BIOS also referred to as boot firmware
  • boot firmware is the first code run by the computing system when it is powered on. It is typically stored in non-volatile storage.
  • the primary function of the BIOS is to load and start an operating system.
  • the first job for the BIOS is to initialize and identify system devices such as a video display card, keyboard and mouse, hard disk, CD/DVD drive, and other hardware.
  • the BIOS locates software held on a peripheral device (designated as a “boot device”), such as a hard disk or a CD, and loads and executes that software, giving it control of the computing system. This process is known as booting, or booting up.
  • the system BIOS reads initialization sequences from the adapter's storage.
  • the adapter's storage may contain more than one initialization sequence.
  • the system BIOS reads each of these initialization sequences and loads them, one by one, into the memory of the computing system for execution. However, the system BIOS may only load one sequence for each active function. If two sequences apply to the same function, the system BIOS will only load the first one that it scans.
  • FIG. 3 illustrates the adapter storage 37 containing four initialization sequences: Preboot eXecution Environment (PXE) 70 , Internet Small Computer System Interface (iSCSI) Boot Firmware Table (iBFT) 72 , iSCSI 74 and FC 76 .
  • PXE Preboot eXecution Environment
  • iSCSI Internet Small Computer System Interface
  • iBFT Boot Firmware Table
  • FC 76 FC 76 .
  • the BIOS of the computing system 12 reads these initialization sequences and loads them, one by one, into the memory 28 of the computing system 12 for execution. However, the system BIOS only loads one sequence for each active function. If two sequences apply to the same function, the system BIOS will only load the first one that it scans.
  • PXE 70 and iBFT 72 may both apply to the same function, and in FIG.
  • PXE 70 is stored ahead of iBFT 72 .
  • the system BIOS will only load PXE 70 and will not load iBFT 72 .
  • the location of initialization sequences within the adapter's storage can thus affect whether or not a particular initialization sequence gets executed.
  • PXE also known as Pre-Execution Environment
  • iBFT is a component of the Advanced Configuration and Power Interface (ACPI) 3.0b standard that provides operating systems a standard way to boot from software-initiated iSCSI protocol.
  • ACPI Advanced Configuration and Power Interface
  • One aspect of the present embodiments includes the realization that it is undesirable for the location of an initialization sequence within an adapter's storage to affect whether or not that initialization sequence gets executed. This scenario can cause an initialization sequence to never get executed. It would thus be desirable to provide greater control over what initialization sequences stored in the adapter get executed. The present embodiments provide such control.
  • the present embodiments provide an initialization selector module (ISM) 80 that may stored at adapter storage 37 .
  • ISM initialization selector module
  • the functionality of the ISM 80 is described below.
  • the ISM 80 is located in the adapter storage 37 such that it is ahead of every initialization sequence 70 , 72 , 74 , 76 .
  • the system BIOS reads the ISM 80 prior to reading any of the initialization sequences 70 , 72 , 74 , 76 .
  • the ISM 80 is processor executable code for enabling a user to control which initialization sequence(s) 70 , 72 , 74 , 76 will be executed at system startup.
  • FIGS. 5-9 illustrate one embodiment of a method for enabling user control over initialization sequence execution using the ISM 80 .
  • FIGS. 5-8 illustrate the contents of the system memory 28 at various points along the sequence of blocks in the process flow of FIG. 9 .
  • the computing system BIOS reads the ISM 80 from the adapter storage 37 and loads it into the system memory 28 .
  • the ISM 80 is loaded into an upper memory area (UMA) 82 , as shown in FIG. 5 .
  • the UMA 82 refers to memory between the addresses of 640 KB and 1024 KB (0xA0000-0xFFFFF).
  • the UMA is reserved for read-only memory (ROM), random access memory (RAM) on peripheral devices, and memory-mapped input/output.
  • the illustrated system memory 28 also includes conventional memory 84 , which is the first 640 KBs (640 ⁇ 1024 bytes) of the memory.
  • the conventional memory 84 is the read-write memory usable by the system's operating system and application programs.
  • the computing system BIOS executes the ISM 80 . Also at block B 902 , the computing system BIOS saves the information stored in the registers 86 ( FIG. 1 ) in the system memory 28 .
  • a hardware register stores bits of information in such a way that all the bits can be written to or read out simultaneously. Typical uses of hardware registers include configuration and startup of certain features, especially during initialization, and status reporting, such as whether a certain event has occurred in the hardware unit. As detailed later, the present embodiments save the information stored in the registers 86 in the system memory 28 so that the registers can be restored later.
  • the ISM 80 allocates a portion of the system memory 28 and copies itself to the allocated memory portion. In certain embodiments, the ISM 80 is copied into the conventional memory 84 , as shown in FIG. 6 .
  • the ISM 80 presents options for choosing one or more initialization sequences to be executed. In certain embodiments, the options are presented to a user on a user interface, which includes a display device (not shown).
  • the user interface may be, for example, a command line interface or a graphical user interface (GUI).
  • GUI graphical user interface
  • the user makes one or more selections from the presented options. In certain embodiments, the user may make multiple selections. For example, if the adapter 14 has four functions, the user may make up to four selections, selecting one initialization sequence for each function. If the user does not make a selection for a given function, a default initialization sequence may execute for that function.
  • the ISM 80 reads the user's selection(s) of the initialization sequence(s). Then, at block B 910 , the ISM 80 reads the code of the selected initialization sequence(s) from the adapter storage 37 and copies the code to the system memory 28 . In certain embodiments, the code of the selected initialization sequence(s) is copied to the initial segment of the system memory 28 . Where the user selects multiple initialization sequences for multiple functions, the code for each sequence may be copied to system memory successively. For example, the selected code for Function 0 is copied to system memory and then executed, then the selected code for Function 1 is copied to system memory and then executed, etc . . .
  • the ISM 80 restores the information stored in the registers 86 by copying the information from the system memory 28 (copied at block B 902 ) back to the registers 86 . Also at block B 912 , the ISM 80 executes the selected initialization sequence(s). At block B 914 , the selected initialization sequence(s) removes the ISM 80 from the system memory 28 . In certain embodiments, the code of each initialization sequence may include a provision for performing this step. At block B 916 , the selected initialization sequence(s) begins normal execution.
  • the foregoing embodiments advantageously enable selection of initialization sequences for adapters. These embodiments thus solve the prior art problem of certain initialization sequences being bypassed when another initialization sequence for the same function gets executed.
  • the present embodiments also enable adapters to be more versatile and customizable.

Abstract

The present embodiments provide a mechanism for selecting from among a plurality of initialization sequences to be executed as part of system startup. The present embodiments thus address the problem of certain initialization sequences not executing because they apply to the same function as another initialization sequence that is positioned ahead of the subject initialization sequence in storage of an adapter.

Description

TECHNICAL FIELD
The present invention relates to computing systems.
BACKGROUND
A computer network, often simply referred to as a network, is a group of interconnected computers and devices that facilitates communication among users and allows users to share resources. A computing system typically uses initialization instructions to begin operations. Continuous efforts are being made to improve initialization operations.
SUMMARY
The various present embodiments relating to user selectable initialization for adapters have several features, no single one of which is solely responsible for their desirable attributes. Without limiting the scope of the present embodiments as expressed by the claims that follow, their more prominent features now will be discussed briefly. After considering this discussion, and particularly after reading the section entitled “Detailed Description,” one will understand how the features of the present embodiments provide the advantages described herein.
One of the present embodiments comprises a machine-implemented method for enabling an adapter coupled to a computing system to be initialized according to one of a plurality of initialization sequences based upon a user selection. The computing system includes a processor for executing processor-executable instructions and a plurality of registers for storing information. The method comprises system BIOS (basic input/output system) of the computing system loading an initialization selector module (ISM) into system memory. The method further comprises the system BIOS calling an entry point for the ISM and saving the information stored in the registers in the system memory. The method further comprises the ISM allocating a portion of the system memory and copying itself to the allocated memory portion. The method further comprises the ISM reading a user selection of one of the plurality of initialization sequences. The method further comprises the ISM reading code of the selected initialization sequence and copying the code to an initial segment of the system memory. The method further comprises the ISM restoring the information stored in the registers and executing the selected initialization sequence. The method further comprises the selected initialization sequence removing the ISM from the system memory. The method further comprises the selected initialization sequence beginning normal execution.
Another of the present embodiments comprises an adapter for enabling a computing system to communicate with a plurality of devices in a network. The adapter comprises a first interface for enabling the adapter to communicate with the computing system. The adapter further comprises a second interface for enabling the adapter to communicate with the network. The adapter further comprises a memory for storing processor-executable instructions. The adapter further comprises a processor for executing the instructions. The adapter further comprises storage for storing an initialization selector module (ISM). The ISM enables the adapter to be initialized according to a selected one of a plurality of initialization sequences.
Another of the present embodiments comprises a machine-readable storage medium storing executable instructions, which when executed by a computing system, cause the computing system to perform a process for enabling an adapter coupled to the computing system to be initialized according to one of a plurality of initialization sequences based upon a user selection. The computing system includes a processor for executing processor-executable instructions and a plurality of registers for storing information. The process comprises system BIOS (basic input/output system) of the computing system loading an initialization selector module (ISM) into system memory. The process further comprises the system BIOS calling an entry point for the ISM and saving the information stored in the registers in the system memory. The process further comprises the ISM allocating a portion of the system memory and copying itself to the allocated memory portion. The process further comprises the ISM reading a user selection of one of the plurality of initialization sequences. The process further comprises the ISM reading code of the selected initialization sequence and copying the code to an initial segment of the system memory. The process further comprises the ISM restoring the information stored in the registers and executing the selected initialization sequence. The process further comprises the selected initialization sequence removing the ISM from the system memory. The process further comprises the selected initialization sequence beginning normal execution.
BRIEF DESCRIPTION OF THE DRAWINGS
The various present embodiments relating to selectable initialization for adapters now will be discussed in detail with an emphasis on highlighting the advantageous features. These novel and non-obvious embodiments are depicted in the accompanying drawings, which are for illustrative purposes only. These drawings include the following figures, in which like numerals indicate like parts:
FIG. 1 is a functional block diagram of a computing system coupled to a network through an adapter;
FIG. 2 is a functional block diagram of an adapter;
FIG. 3 is a functional block diagram of a memory device including a plurality of initialization sequences;
FIG. 4 is a functional block diagram of a memory device including a plurality of initialization sequences and an initialization selector module (ISM), according to the present embodiments;
FIG. 5 is a functional block diagram of a memory device illustrating contents of the memory at one point of a method according to the present embodiments;
FIG. 6 is a functional block diagram of a memory device illustrating contents of the memory at another point of a method according to the present embodiments;
FIG. 7 is a functional block diagram of a memory device illustrating contents of the memory at another point of a method according to the present embodiments;
FIG. 8 is a functional block diagram of a memory device illustrating contents of the memory at another point of a method according to the present embodiments; and
FIG. 9 is a flowchart illustrating a method according to the present embodiments.
DETAILED DESCRIPTION
The following detailed description describes the present embodiments with reference to the drawings. In the drawings, reference numbers label elements of the present embodiments. These reference numbers are reproduced below in connection with the discussion of the corresponding drawing features.
As a preliminary note, any of the embodiments described with reference to the figures may be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The terms “logic,” “module,” “component,” “system” and “functionality,” as used herein, generally represent software, firmware, hardware, or a combination of these elements. For instance, in the case of a software implementation, the terms “logic,” “module,” “component,” “system,” and “functionality” represent program code that performs specified tasks when executed on a processing device or devices (e.g., CPU or CPUs). The program code can be stored in one or more computer readable memory devices.
More generally, the illustrated separation of logic, modules, components, systems, and functionality into distinct units may reflect an actual physical grouping and allocation of software, firmware, and/or hardware, or can correspond to a conceptual allocation of different tasks performed by a single software program, firmware program, and/or hardware unit. The illustrated logic, modules, components, systems, and functionality may be located at a single site (e.g., as implemented by a processing device), or may be distributed over a plurality of locations.
The term “machine-readable media” and the like refers to any kind of medium for retaining information in any form, including various kinds of storage devices (magnetic, optical, static, etc.). Machine-readable media also encompasses transitory forms for representing information, including various hardwired and/or wireless links for transmitting the information from one point to another.
The embodiments disclosed herein, may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer-readable media. The computer program product may be computer storage media, readable by a computer device, and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier, readable by a computing system, and encoding a computer program of instructions for executing a computer process.
FIG. 1 is a block diagram of a system 10 configured for use with the present embodiments. The system 10 includes a computing system 12 (may also be referred to as “host system 12”) coupled to an adapter 14 that interfaces with a network 16. The network 16 may include, for example, additional computing systems, servers, storage systems, etc. The computing system 12 may include one or more processors 18, also known as a central processing unit (CPU). The processor 18 executes computer-executable process steps and interfaces with a computer bus 20. An adapter interface 22 facilitates the ability of the computing system 12 to interface with the adapter 14, as described below. The computing system 12 also includes other devices and interfaces 24, which may include a display device interface, a keyboard interface, a pointing device interface, etc.
The computing system 12 may further include a storage device 26, which may be for example a hard disk, a CD-ROM, a non-volatile memory device (flash or memory stick) or any other device. Storage 26 may store operating system program files, application program files, and other files. Some of these files are stored on storage 26 using an installation program. For example, the processor 18 may execute computer-executable process steps of an installation program so that the processor 18 can properly execute the application program.
Memory 28 also interfaces to the computer bus 20 to provide the processor 18 with access to memory storage. Memory 28 may include random access main memory (RAM). When executing stored computer-executable process steps from storage 26, the processor 18 may store and execute the process steps out of RAM. Read only memory (ROM, not shown) may also be used to store invariant instruction sequences, such as start-up instruction sequences or basic input/output system (BIOS) sequences for operation of a keyboard (not shown).
With continued reference to FIG. 3, a link 30 and the adapter interface 22 couple the adapter 14 to the computing system 12. The adapter 14 may be configured to handle both network and storage traffic. Various network and storage protocols may be used to handle network and storage traffic. Some common protocols are described below.
One common network protocol is Ethernet. The original Ethernet bus or star topology was developed for local area networks (LAN) to transfer data at 10 Mbps (mega bits per second). Newer Ethernet standards (for example, Fast Ethernet (100 Base-T) and Gigabit Ethernet) support data transfer rates between 100 Mbps and 10 Gbps. The descriptions of the various embodiments described herein are based on using Ethernet (which includes 100 Base-T and/or Gigabit Ethernet) as the network protocol. However, the adaptive embodiments disclosed herein are not limited to any particular protocol, as long as the functional goals are met by an existing or new network protocol.
One common storage protocol used to access storage systems is Fibre Channel (FC). Fibre Channel is a set of American National Standards Institute (ANSI) standards that provide a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others. Fibre Channel supports three different topologies: point-to-point, arbitrated loop and fabric. The point-to-point topology attaches two devices directly. The arbitrated loop topology attaches devices in a loop. The fabric topology attaches computing systems directly (via HBAs) to a fabric, which are then connected to multiple devices. The Fibre Channel fabric topology allows several media types to be interconnected.
Fibre Channel fabric devices include a node port or “N_Port” that manages Fabric connections. The N_port establishes a connection to a Fabric element (e.g., a switch) having a fabric port or F_port.
A new and upcoming standard, called Fibre Channel Over Ethernet (FCOE) has been developed to handle both Ethernet and Fibre Channel traffic in a storage area network (SAN). This functionality would allow Fibre Channel to leverage 10 Gigabit Ethernet networks while preserving the Fibre Channel protocol. The adapter 14 shown in FIG. 1 may be configured to operate as an FCOE adapter and may be referred to as FCOE adapter 14. QLogic Corporation, the assignee of the present application, provides one such adapter. The illustrated adapter 14, however, does not limit the scope of the present embodiments. The present embodiments may be practiced with adapters having different configurations.
The adapter 14 interfaces with the computing system 12 via the link 30 and a host interface 32. In one embodiment, the host interface 32 may be a Peripheral Component Interconnect (PCI) Express interface coupled to a PCI Express link. The adapter 14 may also include a processor 34 that executes firmware instructions out of memory 36 to control overall adapter 14 operations.
The adapter 14 may also include a processor 34 that executes firmware instructions out of memory 36 to control overall adapter operations. The adapter 14 may also include storage 37, which may be for example non-volatile memory, such as flash memory, or any other device. The storage 37 may store executable instructions and operating parameters that can be used for controlling adapter operations.
The adapter 14 includes a network module 42 for handling network traffic via a link 50. In one embodiment, the network interface 42 includes logic and circuitry for handling network packets, for example, Ethernet or any other type of network packets. The network module 42 may include memory buffers (not shown) to temporarily store information received from other network devices 54 and transmitted to other network devices 54.
The adapter 14 may also include a storage module 46 for handling storage traffic to and from storage devices 56. The storage interface 44 may further include memory buffers (not shown) to temporarily store information received from the storage devices 56 and transmitted by the adapter 14 to the storage devices 56. In one embodiment, the storage module 46 is configured to process storage traffic according to the Fibre Channel storage protocol, or any other protocol.
The adapter 14 also includes a network interface 52 that interfaces with a link 50 via one or more ports (not shown). The network interface 52 includes logic and circuitry to receive information via the link 52 and pass it to either the network module 42 or the storage module 46.
With reference to FIG. 2, in the illustrated embodiment the adapter 14 may use one or more functions 60, 62, 64, 66, labeled as function 0 (60), function 1 (62), function 2 (64) and function 3 (66). While four functions are illustrated, the adapter 14 may include any number of functions. The functions 60, 62, 64, 66 may be, for example, Peripheral Component Interconnect (PCI) Express functions (referred to herein as PCI functions), or any other type of functions. A PCI function is a logical device for the adapter 14. A PCI function may include a set of standardized PCI control/status registers, which a driver in the computing system 12 uses to communicate with the adapter 14, and user-defined logic (control path, data path, processors and others) that is associated with those registers. A PCI function may be a subset of a PCI Express device.
The Basic Input/Output System (BIOS) of a computing system is processor executable code. System BIOS, also referred to as boot firmware, is the first code run by the computing system when it is powered on. It is typically stored in non-volatile storage. The primary function of the BIOS is to load and start an operating system. When the computing system starts up, the first job for the BIOS is to initialize and identify system devices such as a video display card, keyboard and mouse, hard disk, CD/DVD drive, and other hardware. The BIOS then locates software held on a peripheral device (designated as a “boot device”), such as a hard disk or a CD, and loads and executes that software, giving it control of the computing system. This process is known as booting, or booting up.
During boot up, the system BIOS reads initialization sequences from the adapter's storage. The adapter's storage may contain more than one initialization sequence. The system BIOS reads each of these initialization sequences and loads them, one by one, into the memory of the computing system for execution. However, the system BIOS may only load one sequence for each active function. If two sequences apply to the same function, the system BIOS will only load the first one that it scans.
For example, FIG. 3 illustrates the adapter storage 37 containing four initialization sequences: Preboot eXecution Environment (PXE) 70, Internet Small Computer System Interface (iSCSI) Boot Firmware Table (iBFT) 72, iSCSI 74 and FC 76. Upon system startup, the BIOS of the computing system 12 reads these initialization sequences and loads them, one by one, into the memory 28 of the computing system 12 for execution. However, the system BIOS only loads one sequence for each active function. If two sequences apply to the same function, the system BIOS will only load the first one that it scans. For example, PXE 70 and iBFT 72 may both apply to the same function, and in FIG. 3 PXE 70 is stored ahead of iBFT 72. Thus, in the example of FIG. 3 the system BIOS will only load PXE 70 and will not load iBFT 72. The location of initialization sequences within the adapter's storage can thus affect whether or not a particular initialization sequence gets executed.
PXE, also known as Pre-Execution Environment, is an environment to boot computers using a network interface independently of data storage devices (like hard disks) or installed operating systems. iBFT is a component of the Advanced Configuration and Power Interface (ACPI) 3.0b standard that provides operating systems a standard way to boot from software-initiated iSCSI protocol.
One aspect of the present embodiments includes the realization that it is undesirable for the location of an initialization sequence within an adapter's storage to affect whether or not that initialization sequence gets executed. This scenario can cause an initialization sequence to never get executed. It would thus be desirable to provide greater control over what initialization sequences stored in the adapter get executed. The present embodiments provide such control.
The present embodiments provide an initialization selector module (ISM) 80 that may stored at adapter storage 37. The functionality of the ISM 80 is described below. With reference to FIG. 4, in one embodiment the ISM 80 is located in the adapter storage 37 such that it is ahead of every initialization sequence 70, 72, 74, 76. Thus, upon system startup the system BIOS reads the ISM 80 prior to reading any of the initialization sequences 70, 72, 74, 76.
The ISM 80 is processor executable code for enabling a user to control which initialization sequence(s) 70, 72, 74, 76 will be executed at system startup. FIGS. 5-9 illustrate one embodiment of a method for enabling user control over initialization sequence execution using the ISM 80.
FIGS. 5-8 illustrate the contents of the system memory 28 at various points along the sequence of blocks in the process flow of FIG. 9. With reference to FIG. 9, at block B900 the computing system BIOS reads the ISM 80 from the adapter storage 37 and loads it into the system memory 28. In certain embodiments, the ISM 80 is loaded into an upper memory area (UMA) 82, as shown in FIG. 5. The UMA 82 refers to memory between the addresses of 640 KB and 1024 KB (0xA0000-0xFFFFF). On some systems, such as IBM PC's, the UMA is reserved for read-only memory (ROM), random access memory (RAM) on peripheral devices, and memory-mapped input/output. The illustrated system memory 28 also includes conventional memory 84, which is the first 640 KBs (640×1024 bytes) of the memory. The conventional memory 84 is the read-write memory usable by the system's operating system and application programs.
With reference to FIG. 9, at block B902 the computing system BIOS executes the ISM 80. Also at block B902, the computing system BIOS saves the information stored in the registers 86 (FIG. 1) in the system memory 28. A hardware register stores bits of information in such a way that all the bits can be written to or read out simultaneously. Typical uses of hardware registers include configuration and startup of certain features, especially during initialization, and status reporting, such as whether a certain event has occurred in the hardware unit. As detailed later, the present embodiments save the information stored in the registers 86 in the system memory 28 so that the registers can be restored later.
At block B904, the ISM 80 allocates a portion of the system memory 28 and copies itself to the allocated memory portion. In certain embodiments, the ISM 80 is copied into the conventional memory 84, as shown in FIG. 6. At block B906, the ISM 80 presents options for choosing one or more initialization sequences to be executed. In certain embodiments, the options are presented to a user on a user interface, which includes a display device (not shown). The user interface may be, for example, a command line interface or a graphical user interface (GUI). The user makes one or more selections from the presented options. In certain embodiments, the user may make multiple selections. For example, if the adapter 14 has four functions, the user may make up to four selections, selecting one initialization sequence for each function. If the user does not make a selection for a given function, a default initialization sequence may execute for that function.
At block B908, the ISM 80 reads the user's selection(s) of the initialization sequence(s). Then, at block B910, the ISM 80 reads the code of the selected initialization sequence(s) from the adapter storage 37 and copies the code to the system memory 28. In certain embodiments, the code of the selected initialization sequence(s) is copied to the initial segment of the system memory 28. Where the user selects multiple initialization sequences for multiple functions, the code for each sequence may be copied to system memory successively. For example, the selected code for Function 0 is copied to system memory and then executed, then the selected code for Function 1 is copied to system memory and then executed, etc . . .
At block B912, the ISM 80 restores the information stored in the registers 86 by copying the information from the system memory 28 (copied at block B902) back to the registers 86. Also at block B912, the ISM 80 executes the selected initialization sequence(s). At block B914, the selected initialization sequence(s) removes the ISM 80 from the system memory 28. In certain embodiments, the code of each initialization sequence may include a provision for performing this step. At block B916, the selected initialization sequence(s) begins normal execution.
The foregoing embodiments advantageously enable selection of initialization sequences for adapters. These embodiments thus solve the prior art problem of certain initialization sequences being bypassed when another initialization sequence for the same function gets executed. The present embodiments also enable adapters to be more versatile and customizable.
The above description presents the best mode contemplated for carrying out the present selectable initialization for adapters, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains to make and use this selectable initialization for adapters. This selectable initialization for adapters is, however, susceptible to modifications and alternate constructions from that discussed above that are fully equivalent. Consequently, this selectable initialization for adapters is not limited to the particular embodiments disclosed. On the contrary, this selectable initialization for adapters covers all modifications and alternate constructions coming within the spirit and scope of the selectable initialization for adapters as generally expressed by the following claims, which particularly point out and distinctly claim the subject matter of the selectable initialization for adapters.

Claims (14)

What is claimed is:
1. A machine-implemented method for enabling an adapter coupled to a computing system to be initialized according to one or more of a plurality of initialization sequences stored at adapter storage, the computing system including a processor for executing processor-executable instructions and a plurality of registers for storing information, the adapter including a plurality of functions, wherein more than one of the plurality of initialization sequences is associated with a first one of the functions, the method comprising:
executable system BIOS (basic input/output system) of the computing system loading an initialization selector module (ISM) into memory of the computing system from the adapter storage, wherein the ISM is read prior to any of the initialization sequences;
the system BIOS executing the ISM and saving the information stored in the registers in the system memory;
the ISM allocating a portion of the system memory and copying itself to the allocated memory portion;
the ISM presenting a user with options to choose one or more of the initialization sequences to be executed;
the ISM reading a user selection of one of the plurality of initialization sequences;
the ISM reading code of the selected initialization sequence and copying the code to the system memory;
the ISM restoring the information stored in the registers and executing the selected initialization sequence;
the selected initialization sequence removing the ISM from the system memory; and
the selected initialization sequence beginning normal execution;
wherein any one of the initialization sequences may be executed regardless of how the initialization sequences are stored, and regardless of how many of the functions use a same one of the initialization sequences.
2. The method of claim 1, wherein the ISM is loaded into a portion of the system memory that is normally reserved for initialization code.
3. The method of claim 1, wherein the selected initialization sequence is Preboot Execution Environment (PXE) or Internet Small Computer System Interface (iSCSI) Boot Firmware Table (iBFT).
4. The method of claim 1, wherein the code of the selected initialization sequence is copied to an initial segment of the system memory.
5. An adapter for enabling a computing system to communicate with a plurality of devices in a network, the adapter comprising:
a first interface for enabling the adapter to communicate with the computing system;
a second interface for enabling the adapter to communicate with the network;
a memory for storing processor-executable instructions;
a processor for executing the instructions;
storage for storing an initialization selector module (ISM); and
a plurality of functions;
wherein the ISM enables the adapter to be initialized according to one or more of a plurality of initialization sequences based upon at least one user selection;
wherein more than one of the plurality of initialization sequences is associated with a first one of the functions;
wherein the ISM comprises executable code configured to present a user with options to choose one or more of the initialization sequences to be executed;
wherein the ISM comprises executable code configured to be executed prior to the selected initialization sequence; and
wherein any one of the initialization sequences may be executed regardless of how the initialization sequences are stored, and regardless of how many of the functions use a same one of the initialization sequences.
6. The adapter of claim 5, wherein each function comprises a logical device including a set of standardized control/status registers that a driver in the computing system may use to communicate with the adapter, and user-defined logic associated with the registers.
7. The adapter of claim 6, wherein the user-defined logic comprises at least one of a control path, a data path, a RISC (reduced instruction set computing) processor, a network interface and a storage interface.
8. A non-transitory computer-readable medium storing executable instructions, which when executed by a computing system, cause the computing system to perform a process for enabling an adapter coupled to the computing system to be initialized according to one or more of a plurality of initialization sequences stored at adapter storage, the computing system including a processor for executing processor-executable instructions and a plurality of registers for storing information, the adapter including a plurality of functions, wherein more than one of the initialization sequences is associated with a first one of the functions, the process comprising:
system BIOS (basic input/output system) of the computing system loading an initialization selector module (ISM) into memory of the computing system from the adapter storage, wherein the ISM is read prior to any of the initialization sequences;
the system BIOS executing the ISM and saving the information stored in the registers in the system memory;
the ISM allocating a portion of the system memory and copying itself to the allocated memory portion;
the ISM presenting a user with options to choose one or more of the initialization sequences to be executed;
the ISM reading a user selection of one of the plurality of initialization sequences;
the ISM reading code of the selected initialization sequence and copying the code to the system memory;
the ISM restoring the information stored in the registers and executing the selected initialization sequence;
the selected initialization sequence removing the ISM from the system memory; and
the selected initialization sequence beginning normal execution;
wherein any one of the initialization sequences may be executed regardless of how the initialization sequences are stored, and regardless of how many of the functions use a same one of the initialization sequences.
9. The machine-readable storage medium of claim 8, wherein the ISM is loaded into a portion of the system memory that is normally reserved for initialization code.
10. The machine-readable storage medium of claim 8, wherein the selected initialization sequence is Preboot Execution Environment (PXE) or Internet Small Computer System Interface (iSCSI) Boot Firmware Table (iBFT).
11. The machine-readable storage medium of claim 8, wherein the code of the selected initialization sequence is copied to an initial segment of the system memory.
12. A network device for enabling a computing system to communicate with a plurality of other devices in a network, the network device comprising:
a first interface for enabling the network device to communicate with the computing system;
a second interface for enabling the network device to communicate with the network;
a memory for storing processor-executable instructions;
a processor for executing the instructions;
storage for storing an initialization selector module (ISM); and
a plurality of functions;
wherein the ISM enables the network device to be initialized according to one or more of a plurality of initialization sequences based upon at least one user selection;
wherein more than one of the plurality of initialization sequences is associated with a first one of the functions;
wherein the ISM comprises executable code configured to present a user with options to choose one or more of the initialization sequences to be executed;
wherein the ISM comprises executable code configured to be executed prior to the selected initialization sequence; and
wherein any one of the initialization sequences may be executed regardless of how the initialization sequences are stored, and regardless of how many of the functions use a same one of the initialization sequences.
13. The network device of claim 12, wherein each function comprises a logical device including a set of standardized control/status registers that a driver in the computing system may use to communicate with the network device, and user-defined logic associated with the registers.
14. The network device of claim 13, wherein the user-defined logic comprises at least one of a control path, a data path, a RISC (reduced instruction set computing) processor, a network interface and a storage interface.
US12/941,621 2010-11-08 2010-11-08 Selectable initialization for adapters Active 2031-11-13 US8566573B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/941,621 US8566573B1 (en) 2010-11-08 2010-11-08 Selectable initialization for adapters

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/941,621 US8566573B1 (en) 2010-11-08 2010-11-08 Selectable initialization for adapters

Publications (1)

Publication Number Publication Date
US8566573B1 true US8566573B1 (en) 2013-10-22

Family

ID=49355388

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/941,621 Active 2031-11-13 US8566573B1 (en) 2010-11-08 2010-11-08 Selectable initialization for adapters

Country Status (1)

Country Link
US (1) US8566573B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619245B1 (en) * 2011-09-29 2017-04-11 Chelsio Communications, Inc. Method and apparatus for configuring and booting with more than one protocol using single option ROMBIOS code on multi function converged network adapter
CN112069113A (en) * 2020-09-04 2020-12-11 龙芯中科技术有限公司 I2C equipment configuration method and system
CN112685341A (en) * 2020-12-25 2021-04-20 北京浪潮数据技术有限公司 Configuration method, device and equipment of storage system adapter and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282642B1 (en) * 1998-11-18 2001-08-28 International Business Machines Corporation System for presetting a first or second remote boot protocol by a computer remotely receiving and storing a boot parameter prior to being powered on
US20060116208A1 (en) * 2004-12-01 2006-06-01 Igt Universal operating system to hardware platform interface for gaming machines
US20070136733A1 (en) * 2005-12-12 2007-06-14 Samsung Electronics Co., Ltd. Method, medium and apparatus storing and restoring register context for fast context switching between tasks
US20100005234A1 (en) * 2008-06-30 2010-01-07 Ganga Ilango S Enabling functional dependency in a multi-function device
US20100228942A1 (en) * 2009-03-06 2010-09-09 Yasuhito Tohana Host computer, multipath system, path allocation method, and program
US20100257403A1 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US7870301B2 (en) * 2005-02-25 2011-01-11 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US7987438B2 (en) * 2006-08-10 2011-07-26 International Business Machines Corporation Structure for initializing expansion adapters installed in a computer system having similar expansion adapters

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282642B1 (en) * 1998-11-18 2001-08-28 International Business Machines Corporation System for presetting a first or second remote boot protocol by a computer remotely receiving and storing a boot parameter prior to being powered on
US20060116208A1 (en) * 2004-12-01 2006-06-01 Igt Universal operating system to hardware platform interface for gaming machines
US7870301B2 (en) * 2005-02-25 2011-01-11 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US20070136733A1 (en) * 2005-12-12 2007-06-14 Samsung Electronics Co., Ltd. Method, medium and apparatus storing and restoring register context for fast context switching between tasks
US7987438B2 (en) * 2006-08-10 2011-07-26 International Business Machines Corporation Structure for initializing expansion adapters installed in a computer system having similar expansion adapters
US20100005234A1 (en) * 2008-06-30 2010-01-07 Ganga Ilango S Enabling functional dependency in a multi-function device
US20100228942A1 (en) * 2009-03-06 2010-09-09 Yasuhito Tohana Host computer, multipath system, path allocation method, and program
US20100257403A1 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Restoration of a system from a set of full and partial delta system snapshots across a distributed system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619245B1 (en) * 2011-09-29 2017-04-11 Chelsio Communications, Inc. Method and apparatus for configuring and booting with more than one protocol using single option ROMBIOS code on multi function converged network adapter
CN112069113A (en) * 2020-09-04 2020-12-11 龙芯中科技术有限公司 I2C equipment configuration method and system
CN112069113B (en) * 2020-09-04 2023-01-06 龙芯中科技术股份有限公司 I2C device configuration method and system
CN112685341A (en) * 2020-12-25 2021-04-20 北京浪潮数据技术有限公司 Configuration method, device and equipment of storage system adapter and storage medium
CN112685341B (en) * 2020-12-25 2024-02-23 北京浪潮数据技术有限公司 Configuration method, device and equipment of storage system adapter and storage medium

Similar Documents

Publication Publication Date Title
US11716383B2 (en) Accessing multiple external storages to present an emulated local storage through a NIC
TWI752066B (en) Method and device for processing read and write requests
US11636053B2 (en) Emulating a local storage by accessing an external storage through a shared port of a NIC
CN102341786B (en) Altering access to a fibre channel fabric
US11875172B2 (en) Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC
CN108139924B (en) Hot-plug hardware and software implementation
US10333865B2 (en) Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US11507421B2 (en) Information handling system and method to allocate peripheral component interconnect express (PCIe) bus resources
US8225018B1 (en) System and method for mapping functions to and from network devices using configuration compatible with an adapter by remapping plurality of logical ports of adapter
US8813071B2 (en) Storage reclamation systems and methods
US10572434B2 (en) Intelligent certificate discovery in physical and virtualized networks
US8671228B1 (en) System and methods for managing virtual adapter instances
EP4127892A1 (en) Distributed storage services supported by a nic
US10761859B2 (en) Information processing system, management device, and method for controlling information processing system
US20210042045A1 (en) Storage system and resource allocation control method
US7610482B1 (en) Method and system for managing boot trace information in host bus adapters
US8250252B1 (en) System and methods for using a DMA module for a plurality of virtual machines
US8566573B1 (en) Selectable initialization for adapters
WO2022242665A1 (en) Data storage method and related device
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
US10007564B2 (en) Information processing apparatus and operation verifying method
US10193752B2 (en) Storage system upgrade
US8873430B1 (en) System and methods for presenting storage
US10824471B2 (en) Bus allocation system
US10275261B1 (en) Methods and systems for message logging and retrieval in computer systems

Legal Events

Date Code Title Description
AS Assignment

Owner name: QLOGIC, CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LOK, YING PING;ZHANG, ZHENGHAO;REEL/FRAME:025332/0104

Effective date: 20101104

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL

Free format text: SECURITY AGREEMENT;ASSIGNOR:QLOGIC CORPORATION;REEL/FRAME:041854/0119

Effective date: 20170228

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: CAVIUM, INC., CALIFORNIA

Free format text: MERGER;ASSIGNOR:QLOGIC CORPORATION;REEL/FRAME:044812/0504

Effective date: 20160615

AS Assignment

Owner name: CAVIUM NETWORKS LLC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:046496/0001

Effective date: 20180706

Owner name: QLOGIC CORPORATION, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:046496/0001

Effective date: 20180706

Owner name: CAVIUM, INC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:046496/0001

Effective date: 20180706

AS Assignment

Owner name: CAVIUM, LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:CAVIUM, INC.;REEL/FRAME:047205/0953

Effective date: 20180921

AS Assignment

Owner name: CAVIUM INTERNATIONAL, CAYMAN ISLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM, LLC;REEL/FRAME:051948/0807

Effective date: 20191231

AS Assignment

Owner name: MARVELL ASIA PTE, LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM INTERNATIONAL;REEL/FRAME:053179/0320

Effective date: 20191231

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8