SMC

From Free60 Project

Table of contents

SMC

The SMC is a service processor handling various tasks in the Xbox360.

It is responsible for:

  • powering up and down the box
  • Eject and Power buttons
  • real-time clock
  • CPU and GPU fan
  • front LEDs
  • receiving IR commands from the Media Remote
  • temperature, tilt and AV cable sensors

NOTE: Use with care! (./smc -f 11 gives max fan speed and 4RoD)

Status

There is a driver for the SMC in the Linux kernel patchset, and example code for using it (http://op-co.de/xbox360/smc.c).

Preliminary support in XeLL is being worked on (http://op-co.de/xbox360/smc-ir.c), aiming at an interactive boot menu.

Special Codes

The power button: when you press the powerbutton the SMC receives: 83 11 01 if you want to abort the 'poweroff' and are quick enough you can send this code: 82 04 33.

We are talking about miliseconds here not 'really' useless maybe as a softreboot in the future?


Front LEDs

The ring of light leds are set from linux as follows: echo -ne "\x99\x01\xZY\x00XXXXXXXXXXXX" > /dev/smc

where ZY is (Z=green nibble, Y=red nibble) ie. to set all four quadrants to orange use the following command. echo -ne "\x99\x01\xFF\x00XXXXXXXXXXXX" > /dev/smc

Below are the individual codes x means quadrant lit, o means unlit. Note: this investigation was done with my 360 horizontal.

1  x o
   o o
2  o x
   o o 
3  x x
   o o
4  o o
   x o
5  x o 
   x o
6  o x
   x o 
7  x x
   x o
8  o o 
   o x
9  x o
   o x
a  o x
   o x
b  x x 
   o x
c  o o
   x x
d  x o
   x x
e  o x
   x x
f  x x
   x x