xref: /linux/Documentation/userspace-api/dcdbas.rst (revision bb67bf1c4a56cc8bdba93b4f0353d05e777ff44b)
1*bb67bf1cSVegard Nossum===================================
2*bb67bf1cSVegard NossumDell Systems Management Base Driver
3*bb67bf1cSVegard Nossum===================================
4*bb67bf1cSVegard Nossum
5*bb67bf1cSVegard NossumOverview
6*bb67bf1cSVegard Nossum========
7*bb67bf1cSVegard Nossum
8*bb67bf1cSVegard NossumThe Dell Systems Management Base Driver provides a sysfs interface for
9*bb67bf1cSVegard Nossumsystems management software such as Dell OpenManage to perform system
10*bb67bf1cSVegard Nossummanagement interrupts and host control actions (system power cycle or
11*bb67bf1cSVegard Nossumpower off after OS shutdown) on certain Dell systems.
12*bb67bf1cSVegard Nossum
13*bb67bf1cSVegard NossumDell OpenManage requires this driver on the following Dell PowerEdge systems:
14*bb67bf1cSVegard Nossum300, 1300, 1400, 400SC, 500SC, 1500SC, 1550, 600SC, 1600SC, 650, 1655MC,
15*bb67bf1cSVegard Nossum700, and 750.  Other Dell software such as the open source libsmbios project
16*bb67bf1cSVegard Nossumis expected to make use of this driver, and it may include the use of this
17*bb67bf1cSVegard Nossumdriver on other Dell systems.
18*bb67bf1cSVegard Nossum
19*bb67bf1cSVegard NossumThe Dell libsmbios project aims towards providing access to as much BIOS
20*bb67bf1cSVegard Nossuminformation as possible.  See http://linux.dell.com/libsmbios/main/ for
21*bb67bf1cSVegard Nossummore information about the libsmbios project.
22*bb67bf1cSVegard Nossum
23*bb67bf1cSVegard Nossum
24*bb67bf1cSVegard NossumSystem Management Interrupt
25*bb67bf1cSVegard Nossum===========================
26*bb67bf1cSVegard Nossum
27*bb67bf1cSVegard NossumOn some Dell systems, systems management software must access certain
28*bb67bf1cSVegard Nossummanagement information via a system management interrupt (SMI).  The SMI data
29*bb67bf1cSVegard Nossumbuffer must reside in 32-bit address space, and the physical address of the
30*bb67bf1cSVegard Nossumbuffer is required for the SMI.  The driver maintains the memory required for
31*bb67bf1cSVegard Nossumthe SMI and provides a way for the application to generate the SMI.
32*bb67bf1cSVegard NossumThe driver creates the following sysfs entries for systems management
33*bb67bf1cSVegard Nossumsoftware to perform these system management interrupts::
34*bb67bf1cSVegard Nossum
35*bb67bf1cSVegard Nossum	/sys/devices/platform/dcdbas/smi_data
36*bb67bf1cSVegard Nossum	/sys/devices/platform/dcdbas/smi_data_buf_phys_addr
37*bb67bf1cSVegard Nossum	/sys/devices/platform/dcdbas/smi_data_buf_size
38*bb67bf1cSVegard Nossum	/sys/devices/platform/dcdbas/smi_request
39*bb67bf1cSVegard Nossum
40*bb67bf1cSVegard NossumSystems management software must perform the following steps to execute
41*bb67bf1cSVegard Nossuma SMI using this driver:
42*bb67bf1cSVegard Nossum
43*bb67bf1cSVegard Nossum1) Lock smi_data.
44*bb67bf1cSVegard Nossum2) Write system management command to smi_data.
45*bb67bf1cSVegard Nossum3) Write "1" to smi_request to generate a calling interface SMI or
46*bb67bf1cSVegard Nossum   "2" to generate a raw SMI.
47*bb67bf1cSVegard Nossum4) Read system management command response from smi_data.
48*bb67bf1cSVegard Nossum5) Unlock smi_data.
49*bb67bf1cSVegard Nossum
50*bb67bf1cSVegard Nossum
51*bb67bf1cSVegard NossumHost Control Action
52*bb67bf1cSVegard Nossum===================
53*bb67bf1cSVegard Nossum
54*bb67bf1cSVegard NossumDell OpenManage supports a host control feature that allows the administrator
55*bb67bf1cSVegard Nossumto perform a power cycle or power off of the system after the OS has finished
56*bb67bf1cSVegard Nossumshutting down.  On some Dell systems, this host control feature requires that
57*bb67bf1cSVegard Nossuma driver perform a SMI after the OS has finished shutting down.
58*bb67bf1cSVegard Nossum
59*bb67bf1cSVegard NossumThe driver creates the following sysfs entries for systems management software
60*bb67bf1cSVegard Nossumto schedule the driver to perform a power cycle or power off host control
61*bb67bf1cSVegard Nossumaction after the system has finished shutting down:
62*bb67bf1cSVegard Nossum
63*bb67bf1cSVegard Nossum/sys/devices/platform/dcdbas/host_control_action
64*bb67bf1cSVegard Nossum/sys/devices/platform/dcdbas/host_control_smi_type
65*bb67bf1cSVegard Nossum/sys/devices/platform/dcdbas/host_control_on_shutdown
66*bb67bf1cSVegard Nossum
67*bb67bf1cSVegard NossumDell OpenManage performs the following steps to execute a power cycle or
68*bb67bf1cSVegard Nossumpower off host control action using this driver:
69*bb67bf1cSVegard Nossum
70*bb67bf1cSVegard Nossum1) Write host control action to be performed to host_control_action.
71*bb67bf1cSVegard Nossum2) Write type of SMI that driver needs to perform to host_control_smi_type.
72*bb67bf1cSVegard Nossum3) Write "1" to host_control_on_shutdown to enable host control action.
73*bb67bf1cSVegard Nossum4) Initiate OS shutdown.
74*bb67bf1cSVegard Nossum   (Driver will perform host control SMI when it is notified that the OS
75*bb67bf1cSVegard Nossum   has finished shutting down.)
76*bb67bf1cSVegard Nossum
77*bb67bf1cSVegard Nossum
78*bb67bf1cSVegard NossumHost Control SMI Type
79*bb67bf1cSVegard Nossum=====================
80*bb67bf1cSVegard Nossum
81*bb67bf1cSVegard NossumThe following table shows the value to write to host_control_smi_type to
82*bb67bf1cSVegard Nossumperform a power cycle or power off host control action:
83*bb67bf1cSVegard Nossum
84*bb67bf1cSVegard Nossum=================== =====================
85*bb67bf1cSVegard NossumPowerEdge System    Host Control SMI Type
86*bb67bf1cSVegard Nossum=================== =====================
87*bb67bf1cSVegard Nossum      300             HC_SMITYPE_TYPE1
88*bb67bf1cSVegard Nossum     1300             HC_SMITYPE_TYPE1
89*bb67bf1cSVegard Nossum     1400             HC_SMITYPE_TYPE2
90*bb67bf1cSVegard Nossum      500SC           HC_SMITYPE_TYPE2
91*bb67bf1cSVegard Nossum     1500SC           HC_SMITYPE_TYPE2
92*bb67bf1cSVegard Nossum     1550             HC_SMITYPE_TYPE2
93*bb67bf1cSVegard Nossum      600SC           HC_SMITYPE_TYPE2
94*bb67bf1cSVegard Nossum     1600SC           HC_SMITYPE_TYPE2
95*bb67bf1cSVegard Nossum      650             HC_SMITYPE_TYPE2
96*bb67bf1cSVegard Nossum     1655MC           HC_SMITYPE_TYPE2
97*bb67bf1cSVegard Nossum      700             HC_SMITYPE_TYPE3
98*bb67bf1cSVegard Nossum      750             HC_SMITYPE_TYPE3
99*bb67bf1cSVegard Nossum=================== =====================
100