Template Version: @(#)onepager.txt 1.31 07/08/08 SMI This information is Copyright 2009 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: Solaris ATCA IPMI Driver 1.2. Name of Document Author/Supplier: Kevin Song (Kevin.Song@Sun.COM) 1.3. Date of This Document: 12/11/2009 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The Community you expect to review your project: 1.4.2. The ARC(s) you expect to review your project: PSARC 1.5. Email Aliases: 1.5.2. Responsible Engineer: Kevin.Song@Sun.COM 1.5.4. Interest List: atca_sol@Sun.COM 2. Project Summary 2.1. Project Description: Sun Netra ATCA (Advanced Telecom Computing Architecture) blades have an ATCA version of IPMI controller as their baseboard management controller (BMC), to meet IPMI specification and ATCA base specification PICMG 3.0. This project develops a Solaris driver to interface the IPMI controller while - Keeping an API compatible to open source community standard(OpenIPMI); - And supporting ATCA features. 2.2. Risks and Assumptions: ASSUMPTIONS: a). There will be only one IPMC on blade so that the driver will support one instance only and in Solaris control domain only. b). The project implements a driver whose interface is compatible to OpenIPMI's. However this is not a Linux OpenIPMI driver port. c). There will be a solution for ipmi driver binding. Or no impact to the platforms without IPMC. 3. Business Summary 3.1. Problem Area: We need Solaris interface to provide a). OpenIPMI compatible device API so that customer's application could be ported to Solaris as easy as recompiling. b). The support for ATCA features e.x. Pat ATCA watchdog timer, Support async events from shelf manager like FRU control graceful reboot. OpenIPMI from open source is the dominant IPMI design. All our ATCA customers and open source community write IPMI applications based on OpenIPMI. For example, OpenHPI is based on OpenIPMI. Solaris IPMI dev interface needs to be compatible to OpenIPMI to support customer's OpenIPMI based applications, to compete with Linux based products. The major gaps to the existing Solaris ipmi driver bmc are: a). Driver bmc's device interface is incompatible with OpenIPMI. The ioctl request and the data structure in ioctl arg are different. It requires to develop a plugin in every IPMI application for bmc driver. This will be a development cost and huge sustaining cost. We have multiple customers require OpenIPMI compatible API. b). Solaris bmc driver does not have ATCA support. BMC driver doesn't support event which is needed by graceful reboot, graceful shutdown, etc. BMC driver doesn't support hardware patting ATCA watchdog timer (FWARC/2008/134) to meet the high resolution requirement from customers. c). Solaris bmc driver supports KCS only and has no framework of driver registration. The IPMC on Sun Netra ATCA blade requires IPMI serial interface. 3.2. Market/Requester: Maximize chances of success for Sun's ATCA systems, blades, and Solaris OS in a rapidly growing industry migrating to Linux. Bundling offers at least a competitive match to how Linux solutions are offered today. Unbundled provides further motivation for Linux migration. 3.3. Business Justification: Sun ATCA customers include Alcatel-Lucent, Nortel, Navy, Ericsson, BridgeWater, Motorola. Sales of ATCA based solutions are expected to reach over $7 billion by 2012. Telco servers is the fastest growing server segment. 3.4. Competitive Analysis: Linux ATCA blades from IBM, RadiSys and many small vendors. 3.5. Opportunity Window/Exposure: Sun is already late to ATCA market, where many vendors are already participating in inter-portability workshops. Many of Sun's major Telco customers evaluating ATCA are surprised at the absence of an ATCA solution from Sun. 3.6. How will you know when you are done?: Integrate to Open Solaris, Solaris Next and s10. No unresolved P1-P3 bugs in the drivers. Run an off-the-shelf OpenIPMI application (for example, ipmitool) to validate it's compatibility to OpenIPMI. 4. Technical Description: 4.1. Details: User Applications | _____|_____ | | | ipmi | |___________| | ___________|____________ | | | ipmi svc | |________________________| | _________|________ | | | ipmi interface | |__________________| . . ============================================================================= . . **************** * * * IPMC * **************** Solaris ATCA IPMI driver has three layers: ipmi IPMI device interface driver, pseudo; arch generic. It interfaces to user land IPMI applications. ipmi svc IPMI service module or message handler; arch generic. This is the IPMI message handler - processing IPMI message; - providing the ATCA services; - providing the framework of the interface driver registration to support different interface drivers on different platforms. ipmi interface IPMI system management interface controller (SMIC) driver; This could be platform specific. On one platform it could be a physical device driver; On another platform it could be a pseudo driver. 4.2. Bug/RFE Number(s): 6694422 Need to put back Solaris ATCA ipmi driver to ON10 4.3. In Scope: Provide Solaris ATCA IPMI driver. For sun4v, it will be in Solaris control domain only . 4.4. Out of Scope: This project does not intend to consolidate the existing bmc driver delivered for KCS interface on x64 and x86 platforms. 4.5. Interfaces: Table 1 Interfaces Exported ____________________________________________________________________________ | Interface | Commitment | Comments | |_______________________|_______________________|____________________________| |IPMI commands | Committed |IPMI Spec v1.5, see Ch5 | |_______________________|_______________________|____________________________| |/dev/ipmidev/0 | Committed |OpenIPMI | |_______________________|_______________________|____________________________| |IPMI ioctls | Committed |OpenIPMI | |_______________________|_______________________|____________________________| |struct ipmi_system_inte| Uncommitted |ipmi address data structure | |rface_addr | | | |_______________________|_______________________|____________________________| |struct ipmi_req | Uncommitted |ipmi request data structure | |_______________________|_______________________|____________________________| |struct ipmi_req_settime| Uncommitted |ipmi request with timing and| | | |retry data structure | |_______________________|_______________________|____________________________| |struct ipmi_recv | Uncommitted |ipmi receive data structure | |_______________________|_______________________|____________________________| |ipmi_atca_wdt_enable | Uncommitted |Variable to enable ATCA WDT | | | |patting with Hypervisor | | | |support. | |_______________________|_______________________|____________________________| |service_channel | Uncommitted |Property in ipmi_serial.conf| | | |specify service channel | |_______________________|_______________________|____________________________| Table 2 Interfaces Imported _____________________________________________________________________________ |Interface | Classification | Comments | |_______________________|_______________________|____________________________| |IPMI commands | Committed |IPMI Spec v1.5, see Ch5 | |_______________________|_______________________|____________________________| |/dev/ipmidev/0 | Committed |OpenIPMI | |_______________________|_______________________|____________________________| |IPMI ioctls | Committed |OpenIPMI | |_______________________|_______________________|____________________________| 4.6. Doc Impact: Man page ipmi(7D) will be provided. 4.7. Admin/Config Impact: - None 4.8. HA Impact: - None 4.9. I18N/L10N Impact: - None 4.10. Packaging & Delivery: Release binding as Solaris packages. SUNWctipmic (both sparc and i86pc) ipmi, ipmi service SUNWctipmi.v (sparc sun4v) ipmi interface SUNWctipmi.i (i86pc) ipmi interface 4.11. Security Impact: This driver enables the access to BMC or host power management so that the clients with root privilege may reset, power cycle, shutdown the host. 4.12. Dependencies: ipmi serial LDC pseudo driver depends on vldc or glvc ipmi instance. ipmi serial driver depends on device node property "compatible"s value "ipmc-su16550" to attach. On sun4v, it depends on Hypervisor support of ATCA WDT patting hv_mach_set_watchdog(). 5. Reference Documents: 1) IPMI v1.5 specification http://www.intel.com/design/servers/ipmi/ or /net/mc-re190/export/public/atca_wosdocs/ipmi/onepager/references/IPMIv1_5rev1_1_6-1-04_markup.pdf 2) PICMG 3.0 http://www.picmg.org http://vsp72-128.sfbay/twiki/bin/view/ATCA/AtcaSpecs or /net/mc-re190/export/public/atca_wosdocs/ipmi/onepager/references/PICMG 3_0_R1_0_ATCA_Specification_Print.pdf 3) OpenIPMI http://openipmi.sourceforge.net or /net/mc-re190/export/public/atca_wosdocs/ipmi/onepager/references/OpenIPMI.pdf 4) Solaris Open Source Review: case# 5396 https://opensourcereview.central.sun.com 5) PSARC 2002/045 Makaha System Management Controller(SMC) Driver (Ranen Chatterjee) 6) PSARC 2004/453 Intelligent Platform Management Interface - IPMI x86 (Guy Morrogh) 7) FWARC 2008/134 Hypervisor support for Hardware Watchdog timer (Raghunath Shenbagam) 8) FWARC 2006/352 IPMI Service Channel (Fred Gotwald) 9) FWARC 2005/310 IPMI Controller Device Bindings (Eduardo Horvath) 10) Pigeon Point BMR-H8S-ATCA Software Architecture /net/mc-re190/export/public/atca_wosdocs/ipmi/onepager/references/bmr-h8s-atca-sa-ts-1_3-20050526.pdf 6. Resources and Schedule: 6.1. Projected Availability: 10/2010 6.2. Cost of Effort: Development - 1 engineer 16 weeks SQA Testing - 1 engineer 8 weeks 6.3. Cost of Capital Resources: - 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: Solaris 6.4.3. Type of CPT Review and Approval expected: Standard 6.4.4. Project Boundary Conditions: 6.4.5. Is this a necessary project for OEM agreements: NO 6.4.6. Notes: NONE 6.4.7. Target RTI Date/Release: 05/2010 6.4.8. Target Code Design Review Date: 02/2010 6.4.9. Update approval addition: N/A 6.5. ARC review type: Standard 7. Prototype Availability: 7.1. Prototype Availability: In progress. 7.2. Prototype Cost: