LEMT (LiPPERT Enhanced Management Technology) LEMT Technical Manual TME-LEMT-0V8.DOC Revision 0.8 / April 11 ©LiPPERT Embedded Computers GmbH Hans-Thoma-Str. 11 D-68163 Mannheim http://www.lippertembedded.
Technical Manual LEMT LiPPERT Document: TME-LEMT-0V8.DOC Revision 0.8 Copyright © 2011 LiPPERT Embedded Computers GmbH, All rights reserved Contents and specifications within this manual are subject of change without notice. Trademarks MS-DOS, Windows, Windows 95, Windows 98, Windows NT and Windows XP are trademarks of Microsoft Corporation. PS/2 is a trademark of International Business Machines, Inc. Intel and Solid State Drive are trademarks of Intel Corporation.
Table of Contents 1 Overview ..................................................................................... 3 2 Access to the SMC-Controller ...................................................... 6 2.1 SMC standard receiver format (write cycle) ................................................. 6 2.2 SMC standard transmitter format (read cycle) ............................................. 7 3 Commands of the SMC .................................................................
.21 Read Data from User-Flash ....................................................................... 26 4.22 Clear all Data in User-Flash ...................................................................... 26 4.23 Write-protect SECURE-Area ....................................................................... 27 4.24 Get Voltage ............................................................................................... 28 4.25 Get Fan Speed .........................................................
1 OVERVIEW The onboard System Management Controller (SMC) on many Lippert Boards implements power sequencing and LEMT (LiPPERT Enhanced Management Technology) functionality. The microcontroller communicates via the System Management Bus with the CPU/Chipset.
Some features are not included on several boards.
Board CSR/CLR/ HurricaneLX800 ThunderbirdE3100 ThunderbirdGM45 HurricaneQM57 CLR-86DX Ontime Counters Power-Cycle Counter Watchdog Timer (Type II) (Type II) Voltages Monitor Temperature Monitor Fan Speed and Control (Board only) Manufacturing Data Status-/VersionInfo of SMC User Flash Size Power Monitor Backlight Control 512 Bytes 1024 Bytes 1024 Bytes 1024 Bytes 1024 Bytes
2 ACCESS TO THE SMC-CONTROLLER The communication to the SMC-Controller is done through the SMBus 1.0-compliant host controller of the Chipset. This host controller provides a mechanism for the CPU to initiate communications with the SMC as slave device. Please look at the Chipset Datasheet for detailed information about the SMBus host controller. The SMC slave address is 0101000X, where X is the Read(1)-/Write(0)bit. BITS A7 A6 0 2.
2.2 SMC STANDARD TRANSMITTER FORMAT (READ CYCLE) The SMC transmitter format is shown in Table 2.2.1. START SMC_addr data_byte ACK command ACK ACK(C) n-bytes START (Repeat) SMC_addr+1 ACK ACK(C) STOP Table 2.2.
3 COMMANDS OF THE SMC To start communication between the bus master (SMBus host controller of Chipset) and the slave device (SMC), the host controller must initiate a Start condition followed by the address of the SMC. The SMC recognizes his address and responds with ACK. Following this, the host controller sends the Command Code (shown in Table 3.1).
COMMAND DESCRIPTION 0x20 Set/Clear Watchdog-timer 0x21 Reserved for BIOS Timeout Counter 0x22 Set timeout of Watchdog-timer on power-up 0x26-0x28 Reserved for Softstraps 0x2E Clear Exception Code 0x2F Get SMC Capability 0x30 Read Version-String 1 0x31 Read Version-String 2 0x32 Read Total Ontime Minutes 0x33 Read Ontime Seconds since Power-Up 0x34 Read Power Cycles 0x35 Read SMC Flags 0x36 Get last System Restart Event 0x37 Read current CPU Temperature 0x38 Read current Board
4 DETAILED DESCRIPTION OF SMC COMMAND CODES 4.1 Set/Clear Watchdog-timer After Start-Up the Watchdog is disabled or loaded with a startup value (Type II Watchdog) from the Flash memory. This command must be used to (re-)load or to clear the Timeout of the Watchdogtimer. The timeout value is given in seconds and has a 16-bit (two byte wide) size. So the Timeout of the Watchdog can be set to 1-65535 seconds. 0 disables the Watchdog.
4.2 Set/Clear initial timeout of Watchdog-timer This command sets the Timeout value of the Watchdog-timer which is loaded at power-up. This initial timeout value is given in seconds and has a 16-bit (two byte wide) size. It can be set from 25 to 65535 seconds. 0 disables the loading of an initial timeout to the Watchdog. START SMC_addr ACK command ACK length ACK MSB_byte ACK LSB_byte ACK STOP Table 4.2.
4.4 Get SMC Capability This command reports the Capability of the SMC. Several features are controlled by the SMC on different hardware platforms. The Capability bytes gives the User the information about the implemented features (explained in Table 4.4.2). START ACK SMC_addr Byte 1 (MSB) ACK ACK command ACK Byte 2 (LSB) START (Repeat) ACK SMC_addr STOP Table 4.4.
4.5 Read Version-String 1/2 This command reads the Version Information of the SMC Firmware. Each command receives 1 length Byte and 32 Bytes of Data. START SMC_addr ACK Byte 1 ACK(C) … command ACK ACK(C) Byte 32 START (Repeat) SMC_addr+1 ACK length ACK(C) ACK(C) STOP Table 4.5.
4.7 Read Ontime Seconds This command reads the Ontime Seconds of the System running in S0-State starting at last poweron. The Ontime Seconds-counter has a 32-bit (four byte wide) size and is count-up every second in the SMC. The counter is cleared when the system is removed from power. The Most Significant Byte is sent first, followed by the next highest Byte down to the Least Significant Byte (Table 4.7.1).
4.8 Read Power Cycles This command reads the Power Cycles of the System. The Power-cycle-counter has a 32-bit (four byte wide) size and is updated every time when the System is Powered-ON in the Flash of the SMC. The Most Significant Byte is sent first, followed by the next highest Byte down to the Least Significant Byte (Table 4.8.1). START length SMC_addr ACK(C) ACK command Byte 1 (MSB) ACK START (Repeat) ACK(C) … ACK(C) SMC_addr+1 Byte 4 (LSB) ACK(C) Table 4.8.
4.9 Read SMC Flags This command reads the SMC Flags and gives an information of the internal status of the SMC. START length SMC_addr ACK(C) data ACK command ACK(C) ACK START (Repeat) SMC_addr+1 ACK STOP Table 4.9.
4.10 Get last System Restart Event This command reads the cause of the last System Restart. The returned code is explained in Table 4.10.2. START length SMC_addr ACK(C) data ACK command ACK(C) ACK START (Repeat) SMC_addr+1 ACK STOP Table 4.10.
4.11 Read current CPU Temperature This command reads the current CPU Temperature. The CPU temperature is transmitted in two Bytes. The first byte is the full degree value, the second byte the value after the comma (Table 4.11.1). Both values are signed chars. START length SMC_addr ACK(C) ACK command ACK Byte 1 (MSB) ACK(C) START (Repeat) Byte 2 (LSB) SMC_addr+1 ACK(C) ACK STOP Table 4.11.
4.13 Get Min/Max-Temperatures (Temperature Logger) This command reads the maximum and minimum reached CPU and Board Temperatures. The temperatures are transmitted in a signed char Bytes. START length SMC_addr ACK(C) MinBoardTemp ACK command MaxCPUTemp ACK(C) ACK START (Repeat) ACK(C) MinCPUTemp ACK(C) SMC_addr+1 ACK MaxBoardTemp ACK(C) STOP Table 4.13.
4.14 Get Startup-Temperatures of CPU and Board This command reads the CPU and Board Temperatures at power-on time. The temperatures are transmitted in a signed char Bytes. START length SMC_addr ACK(C) ACK command CPU_temp ACK ACK(C) START (Repeat) Board_temp ACK(C) SMC_addr+1 ACK STOP Table 4.14.
4.15 Get Number of PROCHOT#-Events This command reads the PROCHOT#-Event-counter. PROCHOT# (processor hot), is asserted by the CPU when the processor die temperature has reached its maximum operating temperature. Since Thermal Monitor 2 is enabled, the reduces it's clock speed and decreases it's Core Voltage when PROCHOT# is asserted. This counter gives the User an information of Cooling problems. This counter is cleared when the system is removed from power.
4.16 Get Number of TS#-Events This command reads the TS#-Event-counter. TS# is asserted by a Temperature sensor when a device reaches it’s critical temperature and released when the device is back into its normal temperature range. This counter gives the User an information of Temperature/Cooling problems. This counter is cleared when the system is removed from power. Depending on the board this command reflects the status of different devices.
4.17 Read SMC Status This command gives an information of the status of the SMC controlled signals. START length SMC_addr ACK(C) ACK command data ACK(C) ACK START (Repeat) SMC_addr+1 ACK STOP Table 4.17.
4.19 Set Address/Length for Flash Access This command prepares the read or write access to the SMC-Flash. For this, the address and the length information must be set in the first step. In the next step the Data can be read or write to the Flash. The address must have a 16-bit format and a length information about the number of bytes to write.
4.20 Write Data to User-Flash This command writes data to the selected address of the SMC-Flash. Up to 32 Bytes can be written in a single block access. The number of bytes to write must be a multiple of 4. This command takes up to 250ms of time (depends if the requested Flash-Area is clear or not). During this time the SMC is not accessible. To detect if the SMC is busy use a single read with 0xFF as command (like Read BIOS Flags, but use 0xFF instead of 0x35).
4.21 Read Data from User-Flash This command reads data from the selected address of the SMC-Flash. Up to 32 Bytes can be written in a single block access. The number of bytes to write must be a multiple of 4. START SMC_addr ACK command Data0 ACK(C) … ACK ACK(C) Data_n START (Repeat) SMC_addr+1 ACK length ACK(C) ACK(C) STOP Table 4.21.
4.23 Write-protect SECURE-Area This single command enables the protection of total SECURE-Area against write accesses. Since the SECURE-Area is located at the bootloader region, the bootloader will also locked. No further bootloader update is possible when the SECURE-Area is locked. To prevent unintentional protect of the SECURE-Area two Magic Bytes must be send with this command (see Table 4.23.2).
4.24 Get Voltage The 10-bit-ADC of the SMC is used to monitor the onboard Voltages. SMC provides 8 Channels which are separately accessed by Command codes as described in Table 4.24.2. START length SMC_addr ACK(C) ACK command MSB_byte ACK(C) ACK START (Repeat) LSB_byte ACK(C) SMC_addr+1 ACK STOP Table 4.24.
4.25 Get Fan Speed This command reads the current Speed of the CPU Cooler Fan. It delivers the Fan Speed in RPM. START length SMC_addr ACK(C) ACK command MSB_byte ACK(C) ACK START (Repeat) LSB_byte ACK(C) SMC_addr+1 STOP Table 4.25.
4.26 Get Main Current This command reads 4 values representing the last 4 currents drawn by the board. The values are sampled every 250ms. The order of the 4 values is NOT in relationship to the time. The access to the SMC may increase the drawn current of the whole system. In this case, you still have 3 samples without the influence of the read access. The returned values must be calculated by the user application into a current.
4.27 Get Board Manufacturing Data These commands reads the contents of the 8 Data-Fields. The Manufacturing Data gives information about the Board-Serial-Number, BIOS-Version, Test-Date, etc. Each command receives 1 length Byte and 16 Bytes of Data. START SMC_addr ACK command Byte 1 ACK(C) … ACK ACK(C) Byte 16 START (Repeat) SMC_addr+1 ACK length ACK(C) ACK(C) STOP Table 4.27.
4.28 Set Backlight PWM This command sets the duty of Backlight control output. The value of the PWM also controls the Backlight enable output. In case of PWM=0, the Backlight enable output will go inactive. START SMC_addr ACK command ACK length ACK PWM_value ACK STOP Table 4.28.
Appendix A, Contact Information Headquarters LiPPERT Embedded Computers GmbH Hans-Thoma-Straße 11 68163 Mannheim Germany Phone +49 621 4321410 Fax +49 621 4321430 E-mail sales@lippertembedded.com support@lippertembedded.com Website www.lippertembedded.com US Office LiPPERT Embedded Computers, Inc. 2220 Northmont Parkway, Suite 250 Duluth, GA 30096 USA Phone +1 (770) 295 0031 Fax +1 (678) 417 6273 E-mail ussales@lippertembedded.com support@lippertembedded.com Website www.lippertembedded.
Appendix B, Getting Help Should you have technical questions that are not covered by the respective manuals, please contact our support department at support@lippertembedded.com. Please allow one working day for an answer! Technical manuals as well as other literature for all LiPPERT products can be found in the Products section of LiPPERT's website www.lippertembedded.com. Simply locate the product in question and follow the link to its manual.
Appendix C, Further Resources http://www.lippertembedded.com LiPPERT Embedded Computers' website with news and detailed information. http://www.intel.com Datasheet of the CPU, Chipset and Ethernet-Controller. http://www.smbus.org Information about the System Management Bus (SMBus) http://www.phoenix.com/en/customer+services/bios/awardbios Additional BIOS information.
Appendix D, Revision History Filename Date Edited by Change TME-LEMT-0V0.doc 2009-01-09 JS Pre-release TME-LEMT-0V1.doc 2009-02-17 JS Function to read Bootloader-Version added Board specific Descriptions removed TME-LEMT-0V2.doc 2009-05-07 JS Text correction in Board Manufacturing Data TME-LEMT-0V3.doc 2009-05-20 JS SMC Flags defined Added POWER_CYCLE as System Restart Event TME-LEMT-0V4.