Embodiments of the invention include a management controller configured to manage managed devices co-located with the management controller on a computing platform. Various aspects of the illustrative embodiments will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that alternate embodiments may be practiced with only some of the described aspects.
For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to one skilled in the art that alternate embodiments may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the illustrative embodiments.
Further, various operations will be described as multiple discrete operations, in turn, in a manner that is most helpful in understanding the illustrative embodiments; however, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations need not be performed in the order of presentation.
The phrase “in one/various embodiment(s)” is used repeatedly. The phrase generally does not refer to the same embodiment; however, it may. The term “coupled” shall encompass a direct connection, an indirect connection or an indirect communication. The terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise. The phrase “A/B” means “A or B”. The phrase “A and/or B” means “(A), (B), or (A and B)”. The phrase “at least one of A, B and C” means “(A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C)”. The phrase “(A) B” means “(B) or (A B)”, that is, A is optional.
Referring now to
Still referring to
For ease of understanding, the remainder of this specification, including the claims, may collectively refer to managed devices 104 and/or managed components/functions 106 as managed entities or endpoints. Since managed entities/endpoints 104/106 are coupled to management controllers 102 via one or more buses, managed entities 104/106 may also be referred to as bus agents.
Note that embodiments of the invention are not limited to the number of management controllers 102a-102e, managed entities 108a-108j and buses 110a-110e illustrated in
Still referring to
For the embodiments, on determining that the bus is a SMBus, primary management controller 102a proceeds to enumerate the number of entities/endpoints endowed with the teachings of the present invention for the entities/endpoints to be managed by primary management controller 102a in accordance with the management controller messaging protocol (MCMP) of the invention, at block 206-208. For the embodiments, primary management controller 102a performs the enumeration by issuing the SMBus Get UDID command to all MCMP endpoints on the SMBus at block 206. At block 208, primary management controller 102a receives response from each management entities/endpoints endowed with the complementary teachings. Thereafter, primary management controller 102a assigns each responsive managed entity/endpoint with unique addresses.
Similarly, on determining that the bus is a PCI-e bus, primary management controller 102a proceeds to enumerate the number of entities/endpoints endowed with the teachings of the present invention for the entities/endpoints to be managed by primary management controller 102a in accordance with the management controller messaging protocol (MCMP) of the invention, at block 210-212. For the embodiments, primary management controller 102a performs the enumeration by broadcasting a MCMP discovery message on the PCIe-bus at block 210. At block 212, primary management controller 102a receives a response from each management entities/endpoints endowed with the complementary teachings. Thereafter, primary management controller 102a assigns each responsive managed entity/endpoint with unique addresses.
Thereafter, whether it is SMBus or PCIe-bus, primary management controller 102a proceeds to discover the capabilities of each managed entity/endpoint, block 230. At block 214, primary management controller 102a sends a Get MCMP capability request message to the managed endpoint. At block 216, primary management controller 102a receives a response to the request message. At block 218, determines whether the managed entity/endpoint has additional vendor provided capabilities. If so, primary management controller 102a sends a Get Vendor capability request message to the managed endpoint at block 210. At block 222, primary management controller 102a receives a response to the request message. Blocks 218-222 are repeated by primary management controller 102a until all Vendor capabilities have been discovered/learned.
Process 230 (including operations 214-222) is then repeated until the MCMP capabilities, and if applicable Vendor capabilities of all entities/endpoints of the bus have been discovered/learned.
In various embodiments, on completion of enumeration, address assignment, and capability discovery at initialization, the entity identifiers, their addresses, capabilities and so forth, are stored in a management controller messaging routing table (not shown).
In various embodiments, primary management controller 102a is also endowed to support dynamic assignment of addresses and capability discovery, to support hot swap and/or plug-n-play of managed devices. The addresses are assigned and the capabilities are discovered on detection of “plug in” of a managed device. On assignment and discovery, the management controller messaging routing table is dynamically updated.
In various embodiments, command code 306 may be
In various embodiments, the fields of a SMBus management message packet are defined as follows:
Thus, for these embodiments, a SMBus packet is routed in accordance with the destination endpoint specified in data byte 3, allowing managed endpoints to be components or functions located on bus agents, and not limiting them to managed devices only.
With data byte 5, more specifically, with the Start of Message (SOM) bit, the End of Message (EOM) bit, and Packet Sequence Number bits, a management controller or a managed endpoint may automatically split a management message over a number of SMBus packets. Similarly, the recipients will examine these data bits, and use them to guide in the re-assembly of the management message. The Initiator bit is employed to denote whether the management controller or the managed endpoint is the owner of the meaning of a message tag used to facilitate an exchange of a management message between a management controller and a managed endpoint.
In various embodiments, a bridge management controller may also be endowed to modify the SMBus Destination Slave Address (Byte 1) in accordance with the Destination Endpoint address to facilitate forwarding of a SMBus packet. Resultantly, for these embodiments, the bridge management controller acts effectively as a SMBus bridge, enabling extension of a SMBus (not possible under the prior art before).
In various embodiments, the fields of a PCIe-bus management message packet are defined as follows:
For these embodiments, byte 12 is employed to carry the destination endpoint (logical) address of the receiving endpoint; and byte 6 contains the SOM, EOM, Packet sequence, and Initiator information earlier described in association with the SMBus embodiments.
Each of these elements performs its conventional functions known in the art. In particular, system memory 704 and mass storage 706 may be employed to store a working copy and a permanent copy of the programming instructions implementing various system services and applications, collectively denoted as instructions 722. The various modules may be implemented via assembler instructions supported by processor(s) 702 or high level languages, such as C, that can be compiled into such instructions. The permanent copy of the programming instructions may be placed into permanent storage 706 in the factory, or in the field, through, for example, a distribution medium (not shown), such as a compact disc (CD), or through communication interface 710 (from a distribution server (not shown)). A distribution CD may include all or portions of the implementing instructions.
Management controller 703 may be endowed with the teachings of the present invention described earlier for primary management controller 104a. One or more bus bridges 720 may be endowed with the teachings of the present invention described earlier for other management controllers 104b-104e. One or more peripheral devices 708 may be endowed with the teachings of the present invention described earlier for managed endpoints 108a-108j.
In various embodiments, management controllers 703, bus bridges 720 and peripheral devices 708 are endowed with circuitry and/or firmware to practice the teachings of the invention at the transport layer. Management controllers 703, bus bridges 720 and peripheral devices 708 further include circuitry for performing physical layer signaling of the transport layer packets.
The constitution of these elements 702-712 are known, and accordingly will not be further described.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiment shown. This application is intended to cover any adaptations or variations of the present invention. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof.
This application is a non-provisional application of provisional application 60/839,401, entitled “Management Controller Message Protocol”, filed Aug. 21, 2006, and claims priority to the same.
Number | Date | Country | |
---|---|---|---|
60839401 | Aug 2006 | US |