MULTI-BUS TYPE MANAGEMENT MESSAGING METHOD AND APPARATUS
A management controller configured to generate and transmit transport layer packets to send management messages to a plurality of recipients managed by the management controller, co-disposed on the same computing platform, is disclosed and described herein. The managed recipients may be coupled to the management controller via buses of different bus types. The management controller is configured to logically address the managed recipients, to automatically split a management message over multiple packets when constrained by data bandwidth of a bus of a particular bus type, or to appropriately format the transport layer packets for the different buses of different bus types.
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.
BACKGROUND1. Technical Field
Embodiments of the present invention are related to the field of data processing, and in particular, to a management messaging method and apparatus for managing entities on buses of multiple bus types.
2. Description of Related Art
Most computing systems employ one or more buses to couple peripheral devices to the central processing units (also referred to simply as processors) to facilitate data exchanges between the peripheral devices and the processors. As computing technology continue to advance in recent years, the complexity of computing systems have likewise increased significantly, employing increasing number of processors, peripheral devices, and multiples buses to couple the peripheral devices to the processors. Examples of these buses include but are not limited to I2C, PCI, PCIe, SMBus and so forth. {I2C=Inter-integrated Circuit Bus, see I2C-Bus Specification, V2.1, January 2000; PCI=Peripheral Component Interconnect, see PCI Local Bus Specification, V2.2, December, 1998; PCIe=PCI Express, see PCIe Base Specification V1.1, 2002; SMBus=System Management Bus, see System Management Bus(SMBus) Specification V2, August 2000.}
Management controllers have been introduced to assist in the automated management of computing platforms. However prior art systems typically require a management controller to communicate with a managed device over a proprietary bus, e.g. Clink in the case of Intel's Manageability Engine.
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.
Claims
1. A management apparatus comprising:
- a transport layer configured to generate one or more transport layer packets to selectively transmit management messages to recipients located on a computing platform on which the management apparatus is disposed, the recipients being managed by the management apparatus and coupled to the management apparatus via one or more buses of the computing platform, the transport layer generating the one or more transport layer packets in accordance with a management messaging protocol, and supporting at least two bus types, appropriately formatting the one or more transport layer packets for the one or more buses in accordance with their bus type or types; and
- a physical layer coupled to the transport layer to signal to transmit the one or more transport layer packets to the managed recipients.
2. The apparatus of claim 1, wherein each of the one or more transport layer packets comprises one or more bits to indicate whether the transport layer packet is a start, a continuing or an end of a management message.
3. The apparatus of claim 2, wherein the one or more bits comprise a first bit and a second bit, with a first setting of the first bit indicating the transport layer packet is a start of the management message, a second setting of the second bit indicating the transport layer packet is an end of the management message, and a complement of the first and second settings to indicate the transport layer packet is a continuing of the management message.
4. The apparatus of claim 1, wherein each of the one or more transport layer packets comprises at least a logical address of a bus agent, the bus agent being either the managed recipient, or having the managed recipient located thereon.
5. The apparatus of claim 4, wherein the bus agent is a selected of a SMBus bus agent or a PCI-bus bus agent.
6. The apparatus of claim 4, wherein the transport layer packet further comprises a physical address of the bus agent.
7. The apparatus of claim 4, wherein the transport layer packet further comprises at least a selected one of a logical address or a physical address of the management apparatus.
8. The apparatus of claim 1, wherein the transport layer is further configured to assign bus addresses to bus agents of the one or more buses, supporting at least two bus types.
9. The apparatus of claim 1, wherein the transport layer is further configured to discover capability or configuration of bus agents of at least one of the one or more buses, if the at least one bus is of a particular bus type.
10. A device management messaging method, comprising:
- receiving form a management controller, by a managed recipient, a transport layer packet transmitting at least a portion of a management message from the management controller to the managed recipient, the transport layer packet having a logical address corresponding to the managed recipient, and one or more bits to indicate whether the transport layer packet is a start, a continuing, or an end of the management message, and the management controller and the managed recipient are co-located on a same computing platform; and
- examining the one or more bits by the managed recipient to determine whether the transport layer packet is a start, a continuing, or an end of the management message.
11. The method of claim 10, wherein the one or more bits comprise a first bit and a second bit, with a first setting of the first bit indicating the transport layer packet is a start of the management message, a second setting of the second bit indicating the transport layer packet is an end of the management message, and a complement of the first and second settings to indicate the transport layer packet is a continuing of the management message.
12. The method of claim 10, wherein the managed recipient is a bus agent of the computing platform or located on a bus agent of the computing platform.
13. The method of claim 12, wherein the transport layer packet comprises the logical address of the managed recipient and a physical address of the bus agent.
14. The method of claim 10, wherein the transport layer packet comprises the logical address of the managed recipient and at least a selected one of a logical address or a physical address of the management controller.
15. The method of claim 10 further comprising receiving bus address assignment from the management controller.
16. The method of claim 10, further comprising responding to capability or configuration discovery by the management controller.
17. A computing system, comprising:
- a processor;
- an input device coupled to the processor;
- a first bus coupled to the processor, the first bus being of a first bus type;
- a second bus coupled to the processor, the second bus being of a second bus type different from the first bus type;
- a first bus agent coupled to the first bus;
- a second bus agent coupled to the second bus; and
- a management controller coupled to the first bus and to the second bus, the management controller being configured to generate a plurality of transport layer packets to selectively transmit a plurality of management messages to the first and second bus agents in accordance with a common management messaging protocol, the management controller appropriately formatting the transport layer packets for the first and second bus agents in accordance with the first and second bus types.
18. The computing system of claim 17, wherein the transport packets destined for the first or the second bus agent have first and second different formats respectively.
19. The computing apparatus of claim 17, wherein the first and the second buses are SMBus and PCI-bus respectively, and the first and second bus agents are SMBus bus agent and PCI-bus bus agent.
20. The computing system of claim 17, wherein at least some of the transport packets are destined for a managed recipient located on a selected one of the first or the second bus agent.
21. The computing system of claim 17, wherein each of the one or more transport layer packets comprises one or more bits to indicate whether the transport layer packet is a start, a continuing or an end of a management message.
22. The computing system of claim 21, further comprising another management controller, similarly constituted as the management controller, coupling the management controller to at least one of the first or second bus.
23. An article comprising a machine-readable medium that contains instructions, which when executed by a device, enables the device to receive a SMBus packet having a destination slave address, and modify the destination slave address to facilitate routing of the SMBus packet to a SMBus agent, the SMBus packet transmitting at least a portion of a management message from a management controller to a managed recipient, the device coupling the management controller to a SMBus to which the SMBus agent is coupled, the device, the management controller, the SMBus agent and the SMBus being of a same computing platform, the managed recipient being either the SMBus agent or located on the SMBus agent, the SMBus packet being a transport layer packet generated by the management controller in accordance with a management messaging protocol that is independent of bus types, and appropriated formatted by the management controller for routing over the SMBus.
24. The article of claim 23, wherein each of the transport layer packets further comprises one or more bits to indicate whether the transport layer packet is a start, a continuing or an end of a management message.
25. The article of claim 23, wherein each of the transport layer packets further comprises a logical address of the managed recipient.
Type: Application
Filed: Dec 29, 2006
Publication Date: Feb 21, 2008
Inventors: Mikal Hunsaker (El Dorado Hills, CA), Travis Schluessler (Hillsboro, OR), Thomas Slaight (Beaverton, OR), David Hines (Phoenix, AZ)
Application Number: 11/618,372
International Classification: G06F 13/36 (20060101);