summaryrefslogtreecommitdiff
path: root/recipes/sccd/files/README
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/sccd/files/README
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/sccd/files/README')
-rw-r--r--recipes/sccd/files/README220
1 files changed, 220 insertions, 0 deletions
diff --git a/recipes/sccd/files/README b/recipes/sccd/files/README
new file mode 100644
index 0000000000..d2d1934dd4
--- /dev/null
+++ b/recipes/sccd/files/README
@@ -0,0 +1,220 @@
+ Iomega G2 MC68HC908QY4 Support Notes
+ October 2006
+
+The Iomega G2 Version 3.x and 5.x boards have a secondary microcontroller
+aboard, a Freescale MC68HC908QY4. This microcontroller is connected to the
+board's LED, fan, digital thermometer, power switch, and main processor, the
+MPC8241. The connection to the main processor is through the 8241's second
+UART and possibly its reset lines.
+
+The microcontroller can perform the following functions:
+ o The LED can be set to off, blue, red, blue flash, red flash,
+ alternate (blue->red->blue) and some boards alternate3
+ (blue->blue->blue->red->red->red). The flash and alernate rates
+ can be be set. Alternate3 rate is fixed.
+ o Fan can be set to on or auto. Auto mode is a thermostat function
+ that turns the fan on and off based on two temprature settings:
+ Fan Temp High and Fan Temp Low.
+ o The system can be reset, causing a MPC8241 reset, or stopped,
+ causing a full power down.
+ o The microcontroller can detect if the soft power switch has been
+ activated. There appears to a 20s delay after the power switch
+ has been depressed before the microcontroller causes an actual
+ power off. This event can be detected by polling the
+ microcontroller.
+
+The running system communicates with microcontroller and ultimately controls
+the devices connected to it via the MPC8241's second UART. The connection
+settings are: 9600,8,n,1. The serial protocol is very simple, an alternating
+send and receive of data packets. Communication is done in 8 byte data packets
+and is initiated by the host processor. Once the host processor has sent 8
+bytes, the microcontroller responds with 8 bytes. The packet contains bytes
+that can affect the state of the power, led and fan. It also contains bits
+reflecting external soft power events. Both packets sent and received follow
+the same structure.
+
+The 8 bytes are decoded as follows:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Power | LED | LED | Fan |
+ | State | State | Flash Rate | State |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Fan High Temp | Fan Low Temp | | |
+ | ON | OFF | ID | CheckSum |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Hex Ascii Comments
+ --- ----- --------------------------------------------------
+Power State:
+ 0x62 b Running, nominal running state
+ 0x63 c Stop, power down immediately (ID == HOST) OR
+ Stop, the power switch has been activated, stop in 20s
+ (ID == CONTROLLERxx) OR
+ Stop, the host has advised Stop
+ (ID == CONTROLLERxx)
+ 0x64 d Advise Stop, the host is annoucing its intention
+ to stop (ID == HOST)
+ 0x65 e Restart, restart immediately (ID == HOST) OR
+ Restart, the host has advised Restart
+ (ID == CONTROLLERxx)
+ 0x66 f Advise Restart, the host is annoucing its intention
+ to restart (ID == HOST)
+ 0x67 g Reset, reset immediately (ID == HOST) OR
+ Reset, the host has advised Reset
+ (ID == CONTROLLERxx)
+ 0x68 h Advise Reset, the host is annoucing its intention
+ to reset (ID == HOST)
+
+Except for Running, the Power states are grouped in pairs: Advise [state] and
+[state], where state can be: Stop, Restart, or Reset. The Advise state lets
+the controller know that there is an intention to either stop, restart or
+reset the board. The controller responds by moving to that state and setting
+the LED to redflash, but it does not enact the power change. Instead it waits
+for the host to issue the actual state before performing the power commands.
+For example, assume the microcontroller is reporting the power state to be
+[Running, LED Blue]. After the host issues a Advise Stop, the microcontroller
+reports [Stop, LED Redflash] and then waits, indefinitely. The Host then
+issues a Stop, the microcontroller immediately turns the power off.
+
+There is nothing in the protocol that requires the Advise [state] packets. The
+Host can issue a Stop, Restart, or Reset directly from the Running state and
+the microcontroller will immediately enact the change.
+
+There is nothing in the protocol that forbids moving back to Running from the
+Stop, Restart or Reset states, i.e. undoing an Advise [state] packet.
+
+The exception to that rule is in the Stop state. The Stop state can be reached
+by either issuing a Advise Stop or from a softpower switch activation (someone
+hits the power switch). If the latter, then a request to move to any other
+state is ignored and the power will go off in approximately 20s.
+
+NOTE 1: There does not appear to be any difference in processing the Restart
+and Reset state changes. They both deliver a system restart.
+
+NOTE 2: Obvious absence of an 'a' state. Both the LED and Fan controls use 'a'
+as a state, but Power starts with 'b'. No evidence has shown 'a' to be a
+valid state.
+
+LED State:
+ 0x61 a Off
+ 0x62 b Blue
+ 0x63 c Red
+ 0x64 d Blue Flash
+ 0x65 e Red Flash
+ 0x66 f Alternate1 Blue/Red
+ 0x67 g Alternate3 3 Blue/3 Red (only on version 5.x boards)
+
+LED States are self explanatory with one exception. Although state 'g' or
+Alternate3 has been observed, it only seems to function on IOMEGA G2 Version
+5.x boards and does not respond to rate changes.
+
+LED Flash Rate:
+The flash rate seems to be 1/x seconds on, then 1/x seconds off. So one cycle
+of off and on at an LED Flash rate of 1 is almost 2s. The value spans 8 bits
+but functionally 0 is off and 36-40 is on. Testing has shown an oddity, the
+value 35 is rejected by the microcontroller software and is not set.
+
+Fan State:
+ 0x61 a Auto thermostat function
+ 0x62 b On always on
+
+Fan High Temp:
+High Temp is the temprature in Celsius where the fan is be turned on.
+
+Fan Low Temp:
+Low Temp is the temprature in Celsius where the fan is be turned off.
+
+ID:
+The real purpose of this field is not known. It is known that it is a constant
+depending upon the direction of the packets and the board rev. It has been
+designated ID as a place holder but it could as easily be defined as version
+or it may be something else entirely.
+
+ 0x00 DC2 CONTROLLER00
+ IOMEGA G2 Version 5.x Controller ID (recv'd packets)
+ 0x07 BEL HOST (sent packets)
+ 0x12 DC2 CONTROLLER12
+ IOMEGA G2 Version 3.x Controller ID (recv'd packets)
+
+Checksum:
+The check sum is an 8 bit sum of the first 7 bytes with the most significant
+bit cleared.
+
+ Sum = ((b1 + b2 + b3 +b4 +b5 +b6 + b7) & 0x7f)
+
+The bytes and their meanings were determined by watching the serial port
+chatter during specific events such as LED Blue, LED Red, Fan ON, etc. So only
+events observed have been decoded. Although all the significant events were
+observed and decoded, there are some holes in the understanding of the
+protocol.
+
+There is one special packet that causes the microcontroller to reset. This
+packet is:
+ 0x23696f6d 0x65676115
+ (or as a string "#iomega\025")
+
+The resulting packet from the microcontroller is:
+ 0x62000000 0x00000062
+
+Testing also yielded that a null packet will cause the microcontroller to
+feed back the current state. So this packet:
+ 0x00000000 0x00000000
+
+will yield something like this (this is the default state):
+ 0x62620a61 0x322d1220
+
+The default state when the board powers on is:
+ State: Run
+ LED: Red
+ LED Rate: 10
+ Fan: On
+ Fan Temp High: 50C
+ Fan Temp Low: 45C
+
+Below is some of the data collected while watching the serial port chatter:
+
+w: 0x23696f6d 0x65676115 #iomega\025
+r: 0x62000000 0x00000062 b\0\0\0\0\0\0b
+w: 0x62630a61 0x322d0716 bc\na2-\7\26 red state
+r: 0x62630a61 0x322d1221 bc\na2-\22!
+w: 0x62641161 0x322d071e bd\21a2-\7\36 blue flash
+r: 0x62641161 0x322d1229 bd\21a2-\22)
+w: 0x62641161 0x322d071e bd\21a2-\7\36 blue flash
+
+LED ok
+w: 0x62620a61 0x322d0715 bb\na2-\7\25
+r: 0x62630a61 0x322d1220 bb\na2-\22
+
+LED alt
+w: 0x626f0a61 0x322d0719 bf\na2-\7\31
+r: 0x626f0a61 0x322d1224 bf\na2-\22$
+
+reset
+w: 0x68620a61 0x322d071b hb\na2-\7\33 reset
+r: 0x67620a61 0x322d0013 gb\na2-\0\23 resetting
+
+restart
+w: 0x66620a61 0x322d0719 fb\na2-\7\31 restart
+r: 0x65620a61 0x322d1223 eb\na2-\22# restarting
+
+shutdown
+w: 0x64620a61 0x322d0717 db\na2-\7\27 shutdown
+r: 0x63620a61 0x322d1221 cb\na2-\22! power shutting down
+
+soft Power
+r: 0x63620a61 0x322d000f cb\na2-\0\17 power shutting down
+
+
+
+
+
+
+
+
+
+
+
+
+