Hardware Power Domains/lang-ko: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
 
 
(2 intermediate revisions by the same user not shown)
Line 14: Line 14:


XO노트북은 세 가지 주요한 상태에 기초하여, 세 가지 주요한 파워 도메인을 가집니다. "오프 off", "서스펜드 suspend", "어웨이크 awake"
XO노트북은 세 가지 주요한 상태에 기초하여, 세 가지 주요한 파워 도메인을 가집니다. "오프 off", "서스펜드 suspend", "어웨이크 awake"
</blockquote></font>Laptop has three main power domains, corresponding to the three main states of the laptop:
<font size="-1"><blockquote>Laptop has three main power domains, corresponding to the three main states of the laptop:


* ''Off'' - In this state, a user considers the laptop powered off (the power light is turned off), yet elements, such as the embedded system controller or wireless mesh networking interface, may still be operating.
* ''Off'' - In this state, a user considers the laptop powered off (the power light is turned off), yet elements, such as the embedded system controller or wireless mesh networking interface, may still be operating.
Line 37: Line 37:
* WLAN_3.3V
* WLAN_3.3V
입력 파워가 사전 설정된 전압 이하로 떨어지면, 메쉬 네트워크 인터페이스가 중단되고, 임베디드 컨트롤러는 리셋 상태가 됩니다. 이 경우는 노트북 배터리가 완전 방전된 상태로 어떤 입력도 없습니다. 특히 힘든 과제는 [[Hand Crank Low Battery Recovery|핸드 크랭크만을 이용하여, 낮은 배터리로부터 회복]]을 참조하십시오.
입력 파워가 사전 설정된 전압 이하로 떨어지면, 메쉬 네트워크 인터페이스가 중단되고, 임베디드 컨트롤러는 리셋 상태가 됩니다. 이 경우는 노트북 배터리가 완전 방전된 상태로 어떤 입력도 없습니다. 특히 힘든 과제는 [[Hand Crank Low Battery Recovery|핸드 크랭크만을 이용하여, 낮은 배터리로부터 회복]]을 참조하십시오.
</blockquote></font>Devices in the ''green'' power domain are powered whenever the laptop has a power source (a sufficiently charged battery or mains input). They are even powered when a user considers the laptop "turned off" (the power light is not lit). The laptop components in this power domain are the embedded system controller, the wireless mesh networking interface, and the main battery charger.
<font size="-1"><blockquote>Devices in the ''green'' power domain are powered whenever the laptop has a power source (a sufficiently charged battery or mains input). They are even powered when a user considers the laptop "turned off" (the power light is not lit). The laptop components in this power domain are the embedded system controller, the wireless mesh networking interface, and the main battery charger.


The main battery charger is operational whenever the laptop is connected to the mains (wall power). It converts the variable DC input to a stable voltage (that provided by our battery pack, 6V). That <tt>VIN</tt> power rail is the root of the power distribution tree, and is powered either by the main battery charger or the main battery.
The main battery charger is operational whenever the laptop is connected to the mains (wall power). It converts the variable DC input to a stable voltage (that provided by our battery pack, 6V). That <tt>VIN</tt> power rail is the root of the power distribution tree, and is powered either by the main battery charger or the main battery.
Line 69: Line 69:
* VGH, controlled by VGH_EN (from the DCON) and VDDEN, powering the LCD
* VGH, controlled by VGH_EN (from the DCON) and VDDEN, powering the LCD


</blockquote></font>Devices in the ''yellow'' power domain are powered when the laptop is in the ''Suspend'' state (and when it is awake). In this state, the CPU and most of the Southbridge are powered down, but an image is maintained on the display, and the contents of SDRAM memory are preserved. The system can resume to an ''Awake'' state in milliseconds, without the user even being aware that it was in the ''Suspend'' state.
<font size="-1"><blockquote>Devices in the ''yellow'' power domain are powered when the laptop is in the ''Suspend'' state (and when it is awake). In this state, the CPU and most of the Southbridge are powered down, but an image is maintained on the display, and the contents of SDRAM memory are preserved. The system can resume to an ''Awake'' state in milliseconds, without the user even being aware that it was in the ''Suspend'' state.


System elements which are in this domain include main SDRAM memory, the DCON (and its external memory), and the LCD panel.</blockquote></font>
System elements which are in this domain include main SDRAM memory, the DCON (and its external memory), and the LCD panel.</blockquote></font>
Line 97: Line 97:
* VCC_SD, controlled by SD_ON (GPIO2 on the CAFE), powering the SD card slot.
* VCC_SD, controlled by SD_ON (GPIO2 on the CAFE), powering the SD card slot.


</blockquote></font>Devices in the ''red'' power domain are powered when the laptop is fully awake. In this state, most of the laptop is operating.
<font size="-1"><blockquote>Devices in the ''red'' power domain are powered when the laptop is fully awake. In this state, most of the laptop is operating.


Power supplies in this domain are:
Power supplies in this domain are:
Line 111: Line 111:
== LCD 백라이트 ==
== LCD 백라이트 ==
디스플레이 백라이트는 이 기계의 다른 파워 상태와 독립적입니다. 노트북이 "서스펜드"나 "어웨이크" 모드일 때 파워를 받지만, 모든 상태에서 반드시 전력을 공급받을 필요는 없습니다. 백라이트 파워 공급은 DCON의 <tt>BACKLIGHT</tt> 컨트롤 시그널에 의해 가능합니다.
디스플레이 백라이트는 이 기계의 다른 파워 상태와 독립적입니다. 노트북이 "서스펜드"나 "어웨이크" 모드일 때 파워를 받지만, 모든 상태에서 반드시 전력을 공급받을 필요는 없습니다. 백라이트 파워 공급은 DCON의 <tt>BACKLIGHT</tt> 컨트롤 시그널에 의해 가능합니다.
</blockquote></font>The backlight for the display is independent of any other power state on the machine. It may be powered when the laptop is in the ''Suspended'' or ''Awake'' modes, but is not necessarily powered in any state. The backlight power supply is enabled by the <tt>BACKLIGHT</tt> control signal from the DCON.</blockquote></font>
<font size="-1"><blockquote>The backlight for the display is independent of any other power state on the machine. It may be powered when the laptop is in the ''Suspended'' or ''Awake'' modes, but is not necessarily powered in any state. The backlight power supply is enabled by the <tt>BACKLIGHT</tt> control signal from the DCON.</blockquote></font>


== 카메라==
== 카메라==
카메라는 노트북이 "어웨이크" 상태일 때, 선택적으로 전력을 공급받을 수 있습니다. 두 가지 공급 전압이 요구되는데, 둘 다 CAM_GPIO3 컨트롤러 시그널에 의해 가능합니다.
카메라는 노트북이 "어웨이크" 상태일 때, 선택적으로 전력을 공급받을 수 있습니다. 두 가지 공급 전압이 요구되는데, 둘 다 CAM_GPIO3 컨트롤러 시그널에 의해 가능합니다.
</blockquote></font>The camera may optionally be powered, when the laptop is in the ''Awake'' state.
<font size="-1"><blockquote>The camera may optionally be powered, when the laptop is in the ''Awake'' state.
There are two supply voltages required, both enabled by the CAM_GPIO3 control signal (GPIO3 on the CAFE chip).</blockquote></font>
There are two supply voltages required, both enabled by the CAM_GPIO3 control signal (GPIO3 on the CAFE chip).</blockquote></font>


Line 122: Line 122:
이 버튼 셀은 노트북이 "어웨이크"일 때마다 재충전됩니다.
이 버튼 셀은 노트북이 "어웨이크"일 때마다 재충전됩니다.


</blockquote></font>The real time clock on the laptop is maintained by a rechargeable silver oxide button cell. This supply (VDD_RTC) is supplied to the Southbridge. This power domain will remain powered even if otherwise the laptop is completely dead (no line in, and no main battery).
<font size="-1"><blockquote>The real time clock on the laptop is maintained by a rechargeable silver oxide button cell. This supply (VDD_RTC) is supplied to the Southbridge. This power domain will remain powered even if otherwise the laptop is completely dead (no line in, and no main battery).


The button cell is recharged whenever the Laptop is ''Awake''.</blockquote></font>
The button cell is recharged whenever the Laptop is ''Awake''.</blockquote></font>
Line 133: Line 133:
* 단일 소프트 스위치가 모든 외부 USB 포트 상의 전력을 위해 공급됨 (B2에서 사용된 두 개의 스위치 대신).
* 단일 소프트 스위치가 모든 외부 USB 포트 상의 전력을 위해 공급됨 (B2에서 사용된 두 개의 스위치 대신).
* 사우스브릿지와 프레임 버퍼의 로딩을 컨트롤하는 DCON 간의 컨트롤 시그널 상의 풀업 (pullup)을 풀다운 (pulldown)으로 변경.
* 사우스브릿지와 프레임 버퍼의 로딩을 컨트롤하는 DCON 간의 컨트롤 시그널 상의 풀업 (pullup)을 풀다운 (pulldown)으로 변경.
</blockquote></font>There are some minor changes to the power distribution between the B2 and later builds of the XO. These changes support the change to a Geode LX processor and fix bugs detected in the B2 build.
<font size="-1"><blockquote>There are some minor changes to the power distribution between the B2 and later builds of the XO. These changes support the change to a Geode LX processor and fix bugs detected in the B2 build.


The changes made to B3 (with respect to B2) are:
The changes made to B3 (with respect to B2) are:
Line 147: Line 147:
===CPU Core===
===CPU Core===
파워를 절략하는 주요한 방식은, 적절할 때 HLT 명령을 실행하는 것입니다. 이것은 ACPI C1 상태입니다. 이것은 ACPI C1 상태이며, GX는 "suspend on hlt"라 불리는 특성이 있는데, 항상 가용하며, 매 hlt마다 CPU 코어를 "서스펜드" 상태로 만들어, 파워를 절감합니다.
파워를 절략하는 주요한 방식은, 적절할 때 HLT 명령을 실행하는 것입니다. 이것은 ACPI C1 상태입니다. 이것은 ACPI C1 상태이며, GX는 "suspend on hlt"라 불리는 특성이 있는데, 항상 가용하며, 매 hlt마다 CPU 코어를 "서스펜드" 상태로 만들어, 파워를 절감합니다.
</blockquote></font>The main way to save power is to execute the HLT instruction when appropriate. This is the ACPI C1 state. GX has a feature called "suspend on hlt", which is always enabled, and causes the CPU core to "suspend" on every hlt, saving power.
<font size="-1"><blockquote>The main way to save power is to execute the HLT instruction when appropriate. This is the ACPI C1 state. GX has a feature called "suspend on hlt", which is always enabled, and causes the CPU core to "suspend" on every hlt, saving power.


* Suspend-on-Halt can be turned on and off by MSR 1210: This is on by default, and there is really no reason to turn it off.
* Suspend-on-Halt can be turned on and off by MSR 1210: This is on by default, and there is really no reason to turn it off.
Line 155: Line 155:
===비디오===
===비디오===


</blockquote></font>* Flat panel power management around page 377 of Geode manual (VP offset 0x410). This doesn't actually save us any power, but we need to follow the correct sequence anyway to correctly power the output buffers communicating with the DCON.
<font size="-1"><blockquote>* Flat panel power management around page 377 of Geode manual (VP offset 0x410). This doesn't actually save us any power, but we need to follow the correct sequence anyway to correctly power the output buffers communicating with the DCON.
* Graphics processor can be turned off
* Graphics processor can be turned off
* The video refresh compression feature will conserve power (and bandwidth) at the expense of increased memory usage
* The video refresh compression feature will conserve power (and bandwidth) at the expense of increased memory usage
Line 161: Line 161:


===기타 GX 장치들===
===기타 GX 장치들===
각각의 MBus 장치의 MSR offset 2004은 특정 MBus 장치를 위한 Active Hardware Clock Gating를 작동하게 하거나 끕니다.

</blockquote></font>MSR offset 2004 in each MBus device enables or disabled Active Hardware Clock Gating for that particular MBus device.
<font size="-1"><blockquote>MSR offset 2004 in each MBus device enables or disabled Active Hardware Clock Gating for that particular MBus device.


*GLIU0: ("top" bus interface unit)
*GLIU0: ("top" bus interface unit)
Line 181: Line 181:
==5536 Companion Chip==
==5536 Companion Chip==


</blockquote></font>* Clock domain list on page 63 of 33238f_cs5536_ds.pdf
<font size="-1"><blockquote>* Clock domain list on page 63 of 33238f_cs5536_ds.pdf
* Power management overview on p 79
* Power management overview on p 79
* More info on page 169
* More info on page 169
Line 193: Line 193:
===5536 하드웨어 파워 상태===
===5536 하드웨어 파워 상태===


</blockquote></font>* FO (Full On) - all clocks always running (state after reset)
<font size="-1"><blockquote>* FO (Full On) - all clocks always running (state after reset)
* AHCG (Active Hardware Clock Gating) - hardware automatically stops/starts clocks transparently
* AHCG (Active Hardware Clock Gating) - hardware automatically stops/starts clocks transparently
* Suspend on Halt - ACPI G0/S0/C1
* Suspend on Halt - ACPI G0/S0/C1
Line 200: Line 200:


===5536 파워 도메인===
===5536 파워 도메인===
</blockquote></font>* Working Domain: Vcore and Vio
<font size="-1"><blockquote>* Working Domain: Vcore and Vio
** Includes everything not listed below
** Includes everything not listed below
* Standby Domain: Vcore_vsb and Vio_vsb
* Standby Domain: Vcore_vsb and Vio_vsb
Line 221: Line 221:
===5536 전력관리 MSRs===
===5536 전력관리 MSRs===


</blockquote></font>* GLCP_GLD_MSR_PM - enable AHCG
<font size="-1"><blockquote>* GLCP_GLD_MSR_PM - enable AHCG
* There are 47 clocks that can be independently controlled on the 5536. Things like USB (13 different clocks), PCI, IDE, Audio, etc.</blockquote></font>
* There are 47 clocks that can be independently controlled on the 5536. Things like USB (13 different clocks), PCI, IDE, Audio, etc.</blockquote></font>


===기타 5536 테스트===
===기타 5536 테스트===


</blockquote></font>The MSRs have several BISTs, for things like FPU internals, etc.</blockquote></font>
<font size="-1"><blockquote>The MSRs have several BISTs, for things like FPU internals, etc.</blockquote></font>




==DCON Chip==
==DCON Chip==
</blockquote></font>Verbatim excerpts from the DCON spec:
Verbatim excerpts from the DCON spec:


'''Register 1 bits related to power'''
'''Register 1 bits related to power'''
Line 256: Line 256:


'''Register 8: Display Timeout Value'''
'''Register 8: Display Timeout Value'''
In order to save power, the DCON has the capability of automatically powering down the display outputs and entering DCON Sleep Mode. This register contains the number of output video frames before this automatic powerdown will occur – see the DCON Display Mode Register for more information on using this feature.</blockquote></font>
In order to save power, the DCON has the capability of automatically powering down the display outputs and entering DCON Sleep Mode. This register contains the number of output video frames before this automatic powerdown will occur – see the DCON Display Mode Register for more information on using this feature.


==CaFe Chip (Camera and Flash Enabler)==
==CaFe Chip (Camera and Flash Enabler)==


</blockquote></font>Global register at offset 0x3004 can turn off individual module clocks to
<font size="-1"><blockquote>Global register at offset 0x3004 can turn off individual module clocks to
SD, NAND, and CC. Also, that register has a "ClkRun Enable Set/Clear" bit pair</blockquote></font>
SD, NAND, and CC. Also, that register has a "ClkRun Enable Set/Clear" bit pair</blockquote></font>


===SD 컨트롤러 섹션===
===SD 컨트롤러 섹션===


</blockquote></font>In principle (i.e. if the simplified SD spec is fully implemented), it will
<font size="-1"><blockquote>In principle (i.e. if the simplified SD spec is fully implemented), it will
be possible to gate the power to the SD card.</blockquote></font>
be possible to gate the power to the SD card.</blockquote></font>


Line 272: Line 272:
Control 1 Register - offset 0x40 - 는 컨트롤러를 끄기 위해 PWRDNEN를 가집니다.
Control 1 Register - offset 0x40 - 는 컨트롤러를 끄기 위해 PWRDNEN를 가집니다.
외부 센서 파워는 GPIO에 의해 컨트롤될 것입니다.
외부 센서 파워는 GPIO에 의해 컨트롤될 것입니다.
</blockquote></font>The clock control register at offset 0x88 lets you turn off PIXCLK
<font size="-1"><blockquote>The clock control register at offset 0x88 lets you turn off PIXCLK


Control 1 Register - offset 0x40 - has PWRDNEN to power down the controller.
Control 1 Register - offset 0x40 - has PWRDNEN to power down the controller.
Line 280: Line 280:
===NAND 컨트롤러 섹션===
===NAND 컨트롤러 섹션===
컨틀롤러가 엑세스 뒤에 CE*를 deasserts 한다고 가정하면, 낸드 플레시 칩은 자동적으로 저파워(10 uA typical) 대기 상태가 됩니다.
컨틀롤러가 엑세스 뒤에 CE*를 deasserts 한다고 가정하면, 낸드 플레시 칩은 자동적으로 저파워(10 uA typical) 대기 상태가 됩니다.
</blockquote></font>Assuming that the controller deasserts CE* after an access, the NAND FLASH
<font size="-1"><blockquote>Assuming that the controller deasserts CE* after an access, the NAND FLASH
chips will automatically enter a low-power standby state (10 uA typical).</blockquote></font>
chips will automatically enter a low-power standby state (10 uA typical).</blockquote></font>


Line 289: Line 289:
* 딥 슬립
* 딥 슬립


</blockquote></font>A station (client) (STA) can be in one of the three power management (PM) modes:
<font size="-1"><blockquote>A station (client) (STA) can be in one of the three power management (PM) modes:
* Active mode (stays in Awake state)
* Active mode (stays in Awake state)
* Power Save (PS) mode (stays in either Awake or Doze state)
* Power Save (PS) mode (stays in either Awake or Doze state)
Line 323: Line 323:
==KB3700 임베디드 컨트롤러 칩==
==KB3700 임베디드 컨트롤러 칩==


</blockquote></font>* Sleep State - 8051 program counter stopped
<font size="-1"><blockquote>* Sleep State - 8051 program counter stopped
* Deep Sleep State - all internal clocks stopped (~10 uA for 144-pin version)
* Deep Sleep State - all internal clocks stopped (~10 uA for 144-pin version)
* But resetting the embedded controller hard-resets the system!
* But resetting the embedded controller hard-resets the system!
Line 329: Line 329:


===Clock domains===
===Clock domains===
</blockquote></font>* Flash - (16 MHz to 64 MHz)
<font size="-1"><blockquote>* Flash - (16 MHz to 64 MHz)
* 8051/XBI - uses high clock (setting CLKCFG) 22~4 MHz (whatever that means)
* 8051/XBI - uses high clock (setting CLKCFG) 22~4 MHz (whatever that means)
* WDT - 32 kHz
* WDT - 32 kHz
Line 338: Line 338:
==AD1888 Audio Codec Chip==
==AD1888 Audio Codec Chip==


</blockquote></font>* Unused channels can be disabled (it has more channels than the 2 we use)
<font size="-1"><blockquote>* Unused channels can be disabled (it has more channels than the 2 we use)
* TBD need to read more about this chip</blockquote></font>
* TBD need to read more about this chip</blockquote></font>


Line 347: Line 347:
# 동적인 파워 관리를 위한 소프트웨어
# 동적인 파워 관리를 위한 소프트웨어


</blockquote></font>This section should be moved to the power management software page.
<font size="-1"><blockquote>This section should be moved to the power management software page.


Two issues:
Two issues:
Line 357: Line 357:
* 가능하다면, 볼트미터(voltmeters)로 센스 레지스터를 가로질러 특정 파워 도메인을 측정.
* 가능하다면, 볼트미터(voltmeters)로 센스 레지스터를 가로질러 특정 파워 도메인을 측정.
TBD - 그러한 센스 레지스터 테스트 포인트가 가용한지 결정
TBD - 그러한 센스 레지스터 테스트 포인트가 가용한지 결정
</blockquote></font>* Measure input current with ammeter, or
<font size="-1"><blockquote>* Measure input current with ammeter, or
* If possible, measure specific power domains with voltmeters across sense resistors.
* If possible, measure specific power domains with voltmeters across sense resistors.


Line 364: Line 364:
===C1 테스트===
===C1 테스트===


</blockquote></font>* Turn off unnecessary devices and disable most interrupts
<font size="-1"><blockquote>* Turn off unnecessary devices and disable most interrupts
* Wait for current to stabilize and record reading
* Wait for current to stabilize and record reading
* Setup RTC alarm to fire after N seconds
* Setup RTC alarm to fire after N seconds
Line 375: Line 375:
===TBD Add test sequences for other domains and states===
===TBD Add test sequences for other domains and states===


==ACPI power states (reference)==
==ACPI 파워 상태 (레퍼런스)==


</blockquote></font>This section is a brief summary of ACPI power states, for reference</blockquote></font>
<font size="-1"><blockquote>This section is a brief summary of ACPI power states, for reference</blockquote></font>


===Global states===
===Global states===
</blockquote></font>* G0 - running
<font size="-1"><blockquote>* G0 - running
* G1 - suspended but system state is recoverable "quickly"
* G1 - suspended but system state is recoverable "quickly"
* G2 - off, requires reboot to start, but power supply is attached
* G2 - off, requires reboot to start, but power supply is attached
Line 386: Line 386:


===System states===
===System states===
</blockquote></font>* G0/S0 - not sleeping
<font size="-1"><blockquote>* G0/S0 - not sleeping
* G1/S1 - many clocks off, but state maintained inside devices
* G1/S1 - many clocks off, but state maintained inside devices
* G1/S3 - suspend to RAM - devices powered off, so their state must be saved in RAM (RAM must be powered)
* G1/S3 - suspend to RAM - devices powered off, so their state must be saved in RAM (RAM must be powered)
Line 394: Line 394:


===CPU states===
===CPU states===
</blockquote></font>* G0/S0/C0 - CPU actively executing instructions
<font size="-1"><blockquote>* G0/S0/C0 - CPU actively executing instructions
* G0/S0/C1 - CPU halted (HLT), waiting for interrupt. Cache snoops working, so bus mastering is possible.
* G0/S0/C1 - CPU halted (HLT), waiting for interrupt. Cache snoops working, so bus mastering is possible.
* G1/S1/C2 - Lowest CPU power state that maintains CPU internal context. No need for snooping because (per S1 rules) devices are inactive.
* G1/S1/C2 - Lowest CPU power state that maintains CPU internal context. No need for snooping because (per S1 rules) devices are inactive.
Line 401: Line 401:
===Device states===
===Device states===
==== PCI ====
==== PCI ====
</blockquote></font>(As per the Default Device Class Power Management Spec)
<font size="-1"><blockquote>(As per the Default Device Class Power Management Spec)
* D0 - Device is on and running
* D0 - Device is on and running
* D1 - This state is not defined and not used (Jordan says - I have never seen a PCI device that does D1)
* D1 - This state is not defined and not used (Jordan says - I have never seen a PCI device that does D1)
Line 409: Line 409:
==== USB ====
==== USB ====
사우스브릿지의 USB 인터페이스와 기타 외부 장치들은 해당 장치가 "어웨이크" 상태에서만 파워를 공급받습니다. 외부 장치를 위한 파워는 <tt>USB_VDD_EN_1</tt> and <tt>USB_VDD_EN_2</tt> (from the EC)를 구동함으로써 가능합니다.
사우스브릿지의 USB 인터페이스와 기타 외부 장치들은 해당 장치가 "어웨이크" 상태에서만 파워를 공급받습니다. 외부 장치를 위한 파워는 <tt>USB_VDD_EN_1</tt> and <tt>USB_VDD_EN_2</tt> (from the EC)를 구동함으로써 가능합니다.
</blockquote></font>The USB interface in the Southbridge, and any external devices, are only powered when the device is in the ''Awake'' state. Power for external devices is enabled by driving the <tt>USB_VDD_EN_1</tt> and <tt>USB_VDD_EN_2</tt> (from the EC).</blockquote></font>
<font size="-1"><blockquote>The USB interface in the Southbridge, and any external devices, are only powered when the device is in the ''Awake'' state. Power for external devices is enabled by driving the <tt>USB_VDD_EN_1</tt> and <tt>USB_VDD_EN_2</tt> (from the EC).</blockquote></font>


==== 기타 장치들 ====
==== 기타 장치들 ====
* 대부분의 온-보드 장치들(i8402, graphics, southbridge gadets)은 끄고 켤 수 있습니다 (so either D0 or D3 in ACPI speak).
* 대부분의 온-보드 장치들(i8402, graphics, southbridge gadets)은 끄고 켤 수 있습니다 (so either D0 or D3 in ACPI speak).
</blockquote></font>* Most other on-board devices (i8402, graphics, southbridge gadets) are either on or off (so either D0 or D3 in ACPI speak).</blockquote></font>
<font size="-1"><blockquote>* Most other on-board devices (i8402, graphics, southbridge gadets) are either on or off (so either D0 or D3 in ACPI speak).</blockquote></font>


[[Category:hardware]]
[[Category:hardware]]

Latest revision as of 06:31, 18 April 2007

  번역근원 Hardware Power Domains 원문  
  english | 한국어   +/- 차이  
  • 참고: 기술적인 자료의 번역을 위해 여러분의 도움을 기대합니다. www.laptop.org 사이트와 이 사이트의 메인 페이지들은 대부분 번역되었으나, 나머지는 한글 요약만을 제공하고 있습니다. 어느 페이지든 추가 번역이 필요하면, XO Korea의 번역 섹션에 메시지를 남겨 주시기 바라며, 모자라는 번역 부분을 채워주실 손길을 기다리고 있습니다.
  • Note: Some core pages have been fully translated, and others are provided with summaries. If you need more translation, please leave a message onto the discussion page of this, or that of XO Korea.


이 페이지는 XO 노트북의 파워 배분 스킴을 설명합니다. 아직까지는 다양한 칩 스펙으로부터 추출한 개괄적인 자료 수집 차원이지만, 계속 갱신되고 있습니다. 추가적인 정보와 사이트 링크는 언제나 환영입니다.

This is a description of the power distribution scheme for the XO laptop.

It is still largely a barely-structured collection of notes gleaned from a read-through of the various chip specs, with an eye for stuff related to power management, but it is being updated.

Please feel free to add information. Links to cited documents would be useful...

B2 빌드

B2를 위한 파워 배분 스킴의 다이어그램

XO노트북은 세 가지 주요한 상태에 기초하여, 세 가지 주요한 파워 도메인을 가집니다. "오프 off", "서스펜드 suspend", "어웨이크 awake"

Laptop has three main power domains, corresponding to the three main states of the laptop:

  • Off - In this state, a user considers the laptop powered off (the power light is turned off), yet elements, such as the embedded system controller or wireless mesh networking interface, may still be operating.
  • Suspend - In this state, the laptop continues to display an image but is mostly powered down to conserve power. It may awake in milliseconds.
  • Awake - In this state, all laptop components are fully powered on.

Is this all ? The hardware enables other states: e.g. a deep sleep without the DCON being enabled, or with the DCON enabled but the LCD disabled.

지속적인 파워 공급(Green)

파워 공급원이 있으면 곧바로 파워를 공급받는 장치들로, 노트북이 꺼진 상태에서도 파워를 공급받는데, 이러한 장치들로는 임베디드 시스템 컨트롤러, 무선 메쉬 네트워킹 인터페이스, 그리고 메인 배터리 충전기가 있습니다.

메인 배터리 충전기는 노트북이 메인 (벽면 파워 콘센터)에 연결될 때마다 작동하며, 다양한 DC 입력을 배터리 팩이 공급할 안정된 전압 (6V)로 변환합니다. VIN 파워 레일은 파워 배포 트리의 뿌리이며, 주 배터리 충전기 또는 주 배터리에 의해 구동됩니다.

임베디드 컨트롤러(EC)는 노트북 파워 시스템의 핵심입니다. 이 것은 디스플레이 스크린 (파워, 게임패드, 스크롤패드, 그리고 로테이트) 주변의 푸쉬버튼을 모니터하는 작은 마이크로프로세서이며, 주 배터리 또는 주 배터리 충전기에 의해 구동됩니다.

yellow 또는 red 파워 도메인은 결코 "off" 상태가 되지 않습니다. CPU, 사우스브릿지, 주 메모리, 키보드/터치패드, 그리고 외부 USB 장치는 파워가 꺼질 수 있습니다.

이 도메인에 속하는 파워 공급장치들은;

  • 3VPCU,
  • WLAN_3.3V

입력 파워가 사전 설정된 전압 이하로 떨어지면, 메쉬 네트워크 인터페이스가 중단되고, 임베디드 컨트롤러는 리셋 상태가 됩니다. 이 경우는 노트북 배터리가 완전 방전된 상태로 어떤 입력도 없습니다. 특히 힘든 과제는 핸드 크랭크만을 이용하여, 낮은 배터리로부터 회복을 참조하십시오.

Devices in the green power domain are powered whenever the laptop has a power source (a sufficiently charged battery or mains input). They are even powered when a user considers the laptop "turned off" (the power light is not lit). The laptop components in this power domain are the embedded system controller, the wireless mesh networking interface, and the main battery charger.

The main battery charger is operational whenever the laptop is connected to the mains (wall power). It converts the variable DC input to a stable voltage (that provided by our battery pack, 6V). That VIN power rail is the root of the power distribution tree, and is powered either by the main battery charger or the main battery.

The embedded controller (EC) is the heart of the laptop power system. It is a small microprocessor which monitors the pushbuttons around the display screen (power, gamepad, scrollpad, and rotate), as well as communicating with the main battery and main battery charger. It manages the transition between laptop power states, enabling most voltage regulators and switches.

If there is sufficient battery charge or mains input, the wireless mesh network interface will remain powered and operational. Thus the laptop continues to relay packets as a node on the mesh network. The EC is responsible for notifying the wireless network interface of the current laptop power state and battery status. The EC is also notified when the network interface has received a packet addressed to the laptop.

Nothing in the yellow or red power domains is powered in the Off state. The CPU, Southbridge, main memory, keyboard/touchpad, and external USB devices are all powered off.

Power supplies in this domain are:

  • 3VPCU, powering the embedded controller
  • WLAN_3.3V, controlled by WLAN_EN (GPIO01 on the embedded controller), powering the wireless network interface.

If the input power drops below a preset voltage, the mesh network interface is disabled and the embedded controller is put into a reset state. This happens when a laptop battery is completely discharged and there is no mains input. A particularly difficult task is recovery from a low battery using only the hand crank.

서스펜드 Suspend (Yellow)

노트북이 "서스펜드" 상태에서도 파워를 공급받는 장치들은 "yellow" 파워 도메인에 속합니다. 이 상태에서, CPU와 대부분의 사우스브릿지가 꺼지지만, 디스플에이 상의 이미지는 유지되며, SDRAM 메모리의 컨텐트는 보존됩니다. 시스템은 수 밀리초 내에 어웨이크 Awake로 복고뒤며, 사용자는 서스펜드Suspend 상태 여부를 인지하지 못할 수도 있습니다.

이 도메인에 속하는 시스템 요소로는 SDRAM memory, the DCON (and its external memory), 그리고 LCD panel 입니다.

이 도메인에 속하는 파워 공급들은:

  • SUS_3.3V, controlled by VR_ON# (GPIO00 on the EC, active low), powering parts of the Southbridge.
  • SUS_1.2V, controlled by VR_ON#, powering parts of the Southbridge.
  • V_MEM, controlled by SUS_ON (GPIO1B on the EC), powering the SDRAM main memory (and needed for DCON_2.5V and +2.5V).
  • DCON_2.5V, controlled by DCON_EN (GPIOED on the EC), powering the DCON memory and memory interface (and needed for DCON_1.8V, and LCD_1.8V).
  • DCON_1.8V, powering the DCON core.
  • LCD_1.8V, controlled by VDDEN (from the DCON), powering the LCD
  • LCD_AVDD, controlled by VDDEN, powering the LCD
  • VGL, controlled by VDDEN, powering the LCD
  • VGH, controlled by VGH_EN (from the DCON) and VDDEN, powering the LCD

Devices in the yellow power domain are powered when the laptop is in the Suspend state (and when it is awake). In this state, the CPU and most of the Southbridge are powered down, but an image is maintained on the display, and the contents of SDRAM memory are preserved. The system can resume to an Awake state in milliseconds, without the user even being aware that it was in the Suspend state. System elements which are in this domain include main SDRAM memory, the DCON (and its external memory), and the LCD panel.


Power supplies in this domain are:

  • SUS_3.3V, controlled by VR_ON# (GPIO00 on the EC, active low), powering parts of the Southbridge.
  • SUS_1.2V, controlled by VR_ON#, powering parts of the Southbridge.
  • V_MEM, controlled by SUS_ON (GPIO1B on the EC), powering the SDRAM main memory (and needed for DCON_2.5V and +2.5V).
  • DCON_2.5V, controlled by DCON_EN (GPIOED on the EC), powering the DCON memory and memory interface (and needed for DCON_1.8V, and LCD_1.8V).
  • DCON_1.8V, powering the DCON core.
  • LCD_1.8V, controlled by VDDEN (from the DCON), powering the LCD
  • LCD_AVDD, controlled by VDDEN, powering the LCD
  • VGL, controlled by VDDEN, powering the LCD
  • VGH, controlled by VGH_EN (from the DCON) and VDDEN, powering the LCD

어웨이크 Awake (Red)

red 도메인에 속하는 장치들은 노트북이 완전히 어웨이크 상태일 때 파워를 공급받는데, 이 상태에서, 대부분의 노트북 장치들은 동작 중입니다. 이 도메인에 속하는 파워 공급들은:

  • VCORE_CPU, controlled by MAIN_ON (GPIO1A on the EC), powering the core of the CPU.
  • VCORE_SB, controlled by MAIN_ON, powering the core of the Southbridge.
  • +3.3V, controlled by PWR_ON (generated by VCORE_CPU being stable), powers CPU and Southbridge I/O (and required for VCC_SD).
  • +5V, controlled by PWR_ON, powers external USB and audio amplifier.
  • +2.5V, controlled by PWR_ON, powering the memory interface on the CPU
  • CAFE_2.8V, powering the CAFE chip
  • CAFE_1.2V, powering the CAFE chip
  • VCC_SD, controlled by SD_ON (GPIO2 on the CAFE), powering the SD card slot.

Devices in the red power domain are powered when the laptop is fully awake. In this state, most of the laptop is operating.

Power supplies in this domain are:

  • VCORE_CPU, controlled by MAIN_ON (GPIO1A on the EC), powering the core of the CPU.
  • VCORE_SB, controlled by MAIN_ON, powering the core of the Southbridge.
  • +3.3V, controlled by PWR_ON (generated by VCORE_CPU being stable), powers CPU and Southbridge I/O (and required for VCC_SD).
  • +5V, controlled by PWR_ON, powers external USB and audio amplifier.
  • +2.5V, controlled by PWR_ON, powering the memory interface on the CPU
  • CAFE_2.8V, powering the CAFE chip
  • CAFE_1.2V, powering the CAFE chip
  • VCC_SD, controlled by SD_ON (GPIO2 on the CAFE), powering the SD card slot.

LCD 백라이트

디스플레이 백라이트는 이 기계의 다른 파워 상태와 독립적입니다. 노트북이 "서스펜드"나 "어웨이크" 모드일 때 파워를 받지만, 모든 상태에서 반드시 전력을 공급받을 필요는 없습니다. 백라이트 파워 공급은 DCON의 BACKLIGHT 컨트롤 시그널에 의해 가능합니다.

The backlight for the display is independent of any other power state on the machine. It may be powered when the laptop is in the Suspended or Awake modes, but is not necessarily powered in any state. The backlight power supply is enabled by the BACKLIGHT control signal from the DCON.

카메라

카메라는 노트북이 "어웨이크" 상태일 때, 선택적으로 전력을 공급받을 수 있습니다. 두 가지 공급 전압이 요구되는데, 둘 다 CAM_GPIO3 컨트롤러 시그널에 의해 가능합니다.

The camera may optionally be powered, when the laptop is in the Awake state. There are two supply voltages required, both enabled by the CAM_GPIO3 control signal (GPIO3 on the CAFE chip).

RTC 클럭 (Clock)

이 노트북 상의 실시간 클럭은 재충전 가능한 실버 옥사이드 버튼 셀(silver oxide button cell)에 의해 유지됩니다. 이 공급 (VDD_RTC)은 사우스브릿지에 공급되며, 이 파워 도메인은 언제나 파워를 공급 받으며, 노트북의 다른 장치들이 완전히 꺼진 상태에서도 그러합니다(전력 케이블과 배터리가 빠진 상태). 이 버튼 셀은 노트북이 "어웨이크"일 때마다 재충전됩니다.

The real time clock on the laptop is maintained by a rechargeable silver oxide button cell. This supply (VDD_RTC) is supplied to the Southbridge. This power domain will remain powered even if otherwise the laptop is completely dead (no line in, and no main battery). The button cell is recharged whenever the Laptop is Awake.

B3 및 기타

B2와 XO의 이후 버전 사이에 파워 배분의 작은 변경이 있었습니다. 이 변경들은 지오이드 LX 프로세스로의 변경과 B2 빌드에서 탐지된 버그 수정에 기인합니다. (B2와 비교하여) B3에 발생한 변경들은:

  • 서스펜드 상태에서도 키보드와 터치패드에 전력을 공급하며, 노트북을 깨우는 사용할 수 있도록 함.
  • CAFE와 사우스브릿지를 위한 1.2V 공급이 지오이드 LX의 코어 서플라이로 통합됨
  • 단일 소프트 스위치가 모든 외부 USB 포트 상의 전력을 위해 공급됨 (B2에서 사용된 두 개의 스위치 대신).
  • 사우스브릿지와 프레임 버퍼의 로딩을 컨트롤하는 DCON 간의 컨트롤 시그널 상의 풀업 (pullup)을 풀다운 (pulldown)으로 변경.

There are some minor changes to the power distribution between the B2 and later builds of the XO. These changes support the change to a Geode LX processor and fix bugs detected in the B2 build.

The changes made to B3 (with respect to B2) are:

  • The keyboard and touchpad are powered during suspend, allowing them to be used to wake up the laptop.
  • The 1.2V supplies for the CAFE and the Southbridge have been merged into the core supply for the Geode LX.
  • A single soft switch is provided for power on all external USB ports (instead of the two switches used in B2).
  • A pullup on the control signal between the Southbridge and the DCON which controls the loading of the frame buffer was changed to a pulldown.

개별 통합 회로들 Individual Integrated Circuits

Geode GX

CPU Core

파워를 절략하는 주요한 방식은, 적절할 때 HLT 명령을 실행하는 것입니다. 이것은 ACPI C1 상태입니다. 이것은 ACPI C1 상태이며, GX는 "suspend on hlt"라 불리는 특성이 있는데, 항상 가용하며, 매 hlt마다 CPU 코어를 "서스펜드" 상태로 만들어, 파워를 절감합니다.

The main way to save power is to execute the HLT instruction when appropriate. This is the ACPI C1 state. GX has a feature called "suspend on hlt", which is always enabled, and causes the CPU core to "suspend" on every hlt, saving power.

  • Suspend-on-Halt can be turned on and off by MSR 1210: This is on by default, and there is really no reason to turn it off.
  • SMIs can be turned off with MSR 1301: Turning SMIs off is dangerous, PCI config space is emulated through SMM code.
  • Real stamp and time stamp counters can count (or not) during suspend - MSR 1900: These settings are set to the correct values for compliant operation. Changing these settings will mess up all sorts of things in the system that use the tsc for timing.

비디오

* Flat panel power management around page 377 of Geode manual (VP offset 0x410). This doesn't actually save us any power, but we need to follow the correct sequence anyway to correctly power the output buffers communicating with the DCON.

  • Graphics processor can be turned off
  • The video refresh compression feature will conserve power (and bandwidth) at the expense of increased memory usage
  • Power down the DAC (both analog and digital sections) with Video MISC register (video base + 50h)

기타 GX 장치들

각각의 MBus 장치의 MSR offset 2004은 특정 MBus 장치를 위한 Active Hardware Clock Gating를 작동하게 하거나 끕니다.

MSR offset 2004 in each MBus device enables or disabled Active Hardware Clock Gating for that particular MBus device.

  • GLIU0: ("top" bus interface unit)
  • GLIU1: ("bottom" bus interface unit)
  • MC: (memory controller)
  • GP: A0002004 (BLT engine)
  • DC: (display controller)
  • VP: C0002004 (video processor)

Display controller has 4 different clocks.

There is a 200-clock delay from self-refresh exit to first read command. See MSR 2000001a. Note that this is a DDR spec, not a Geode spec.

Power mode sensitivity counters - MSR. Some experimentation could be done with these.

The Memory Controller's GLD_MSR_PM (MSR) is set to 3, enabling hardware and software clock gating. Software clock gating is determined by bits 33..32 of the MSR. Bit 32 controls gating on Power Mode 0, bit 33 controls gating on Power Mode 1.

5536 Companion Chip

* Clock domain list on page 63 of 33238f_cs5536_ds.pdf

  • Power management overview on p 79
  • More info on page 169

-> Note that the sections mentioned are describing the software and hardware architecture that is present on a normal GX/5536 system with an Insyde-type BIOS. Various pieces described there are not applicable to OLPC with LinuxBIOS.

  • CPU supports clock stop (this really just means suspend-on-HLT)
  • No support for optional ACPI Sleep state S2
  • No support for ACPI CPU states C3 and CT

-> the throttling registers are actually present in GX, and they are fully documented. There were some errata with the hardware, but throttling may still work properly in many cases.

5536 하드웨어 파워 상태

* FO (Full On) - all clocks always running (state after reset)

  • AHCG (Active Hardware Clock Gating) - hardware automatically stops/starts clocks transparently
  • Suspend on Halt - ACPI G0/S0/C1
  • Sleep - ACPI G1/S1/C2
  • Auto-refresh - DRAM kept "warm" (support for ACPI G1/S3 state)

5536 파워 도메인

* Working Domain: Vcore and Vio

    • Includes everything not listed below
  • Standby Domain: Vcore_vsb and Vio_vsb
    • GPIO[31:24]
    • GPIO input conditioning functions 6 and 7
    • GPIO power management events 6 and 7
    • MFGPT[7:6]
    • Power Management Controller (PMC) Standby Controller and its I/O (WORKING, WORK_AUX, RESET_OUT)
    • PMC Standby registers starting at PMS I/O Offset 30h.
  • RTC Domain - Vbat
    • Real Time Clock (always on)
  • WORKING output controls Working domain power to system memory
  • WORK_AUX output controls Working domain power to everything else

System starts in Full On state. Switch to AHCG state via power management MSRs (section 6.18.1 page 526). Each

functional block has such an MSR at xxxx.2004h.

5536 전력관리 MSRs

* GLCP_GLD_MSR_PM - enable AHCG

  • There are 47 clocks that can be independently controlled on the 5536. Things like USB (13 different clocks), PCI, IDE, Audio, etc.

기타 5536 테스트

The MSRs have several BISTs, for things like FPU internals, etc.


DCON Chip

Verbatim excerpts from the DCON spec:

Register 1 bits related to power

Bit 1: DCON Sleep Mode One key to the power efficiency of the DCON is its ability to enter a low power state in which the LCD is completely turned off, and the local SDRAM frame buffer is set to self-refresh mode – this mode is known as DCON Sleep Mode (or just Sleep mode). Under normal circumstances, the DCON will automatically enter Sleep mode as a result of prolonged system inactivity. Specifically, if the Auto Sleep Mode bit is set, and Display Timeout Value video output frames have occurred without a DisplayLoad cycle occurring, or an ECPWRRQST arriving, then the DCON will set this bit, and enter Sleep mode automatically.

Alternately, there are occasions where the CPU will need to initiate entry into DCON Sleep Mode. In particular, the CPU should manually enter Sleep mode when the power switch selects “System Off”, when the lid switch is closed, or when a critically low battery level is detected. To enter Sleep mode, this bit should be written with a ‘1’.

Since the frame buffer is held in the low power self-refresh state while the DCON is in Sleep mode, the DCON is unable to process incoming DisplayLoad cycles. However, the DCONLOAD pin is not ignored. If the CPU requests a DisplayLoad cycle while the DCON is in Sleep mode, this sets an internal state known as DCONLOAD_MISSED. This state is used to “remember” that the data in the frame buffer is no longer consistent with the latest display frame. When the DCON exits Sleep mode after missing DCONLOAD, it will automatically blank the screen, and will generate a DCONLOAD_MISSED interrupt by driving DCONIRQ active forone scan line. This allows the CPU to rewrite the latest frame, and then clear the Video Blanking pin to paint the newest information on the screen.

Exiting Sleep mode may be performed either manually or automatically. Under normal circumstances, this bit will be cleared automatically upon arrival of an ECPWRRQST. In other words, pressing a key restores the video display independently of the host CPU, thus “instantly” turning on the display when a keyboard key, cursor button, or the touchpad has been activated (this masks the latency that would otherwise be required for the CPU to enable the display). Alternately, if desired, the CPU may exit Sleep mode and reinitiate display refresh by clearing this bit to 0.

Bit 2: Auto Sleep Mode When this bit is set to 1, the DCON will automatically stop the display process after Display Timeout Value video frames have been output without system activity. Any time DCONLOAD is high, or when an incoming ECPWRRQST occurs, the internal display timeout register is automatically reset to the value in the Display Timeout Value register. If a Display Timeout occurs, the DCON will automatically enter Sleep mode by setting the DCON Sleep Mode bit to 1. When the Auto Sleep Mode bit is 0, the DCON will continue display refresh indefinitely, whether DisplayLoad cycles or ECPWRRQST occurs; in that case, Sleep mode may only be entered by writing to the DCON Sleep Mode bit.

Bit 3: Backlight Enable Backlight enable is used to determine whether the LCD’s backlight should be turned on while the display is enabled – set this to 1 to turn on the backlight whenever the DCON is not in DCON Sleep Mode. Note that it is not necessary for a screen saver to turn Backlight Enable on and off, since setting this bit allows the backlight to be enabled and disabled automatically (if this bit is left cleared, the backlight will remain disabled whether or not the DCON is on DCON Sleep Mode). When the Backlight is enabled, the BACKLIGHT pin will actively be driven high, and the DBC pin will be driven with a PWM waveform with a duty cycle that matches the value contained in the Backlight Brightness register.

Bit 4: Video Blanking Video blanking is used to display “black” on the screen, without affecting the contents of the DCON’s frame buffer, or the power state of the LCD. This feature is primarily used to determine whether the DCON should exit Sleep mode with the panel displaying data, or with the panel data masked off until the next DisplayLoad cycle. This is notably used by DCON itself. Since the DCON cannot record incoming DisplayLoad cycles while in Sleep mode, it will automatically set the VIDEO_BLANKING bit if DCONLOAD goes high while sleeping, thus ensuring that old data is not displayed upon wakeup. If this bit is written with a ‘1’, the panel will display “black”. If written with ‘0’, the current contents of the SDRAM frame buffer will be displayed on the screen.

Bits 9-11: DotClock Divider In order to support minimum power drain, the DCON supports the ability to reduce the frequency of the panel interface DotClock. The value in this field specifies the crystal oscillator divisor minus one, to yield the system DotClock frequency – all video timings are derived from DotClock. If this field contains 0, DotClock will be equal to the crystal’s clock frequency, whereas a value of 7 will yield a DotClock of 1/8th the crystal frequency. Using 4X the 14.31818 MHz crystal, and with nominal programmed video timing parameters that yield a 50 Hz panel refresh rate, varying the DotClock divider alone will result in actual panel refresh rates of 50.00 Hz, 25.00 Hz, 16.67 Hz, 12.50 Hz, 10.00 Hz, 8.33 Hz, 7.14 Hz, or 6.25 Hz.

Register 8: Display Timeout Value In order to save power, the DCON has the capability of automatically powering down the display outputs and entering DCON Sleep Mode. This register contains the number of output video frames before this automatic powerdown will occur – see the DCON Display Mode Register for more information on using this feature.

CaFe Chip (Camera and Flash Enabler)

Global register at offset 0x3004 can turn off individual module clocks to SD, NAND, and CC. Also, that register has a "ClkRun Enable Set/Clear" bit pair

SD 컨트롤러 섹션

In principle (i.e. if the simplified SD spec is fully implemented), it will be possible to gate the power to the SD card.

카메라 컨트롤러 섹션

offset 0x88에서 클럭 컨트롤러 레지스터는 PIXCLK를 끕니다. Control 1 Register - offset 0x40 - 는 컨트롤러를 끄기 위해 PWRDNEN를 가집니다. 외부 센서 파워는 GPIO에 의해 컨트롤될 것입니다.

The clock control register at offset 0x88 lets you turn off PIXCLK

Control 1 Register - offset 0x40 - has PWRDNEN to power down the controller.

The power to the external sensor is supposed to be controlled by a GPIO

NAND 컨트롤러 섹션

컨틀롤러가 엑세스 뒤에 CE*를 deasserts 한다고 가정하면, 낸드 플레시 칩은 자동적으로 저파워(10 uA typical) 대기 상태가 됩니다.

Assuming that the controller deasserts CE* after an access, the NAND FLASH chips will automatically enter a low-power standby state (10 uA typical).

무선 컨트롤러 칩

하나의 스테이션 (클라이언트)은 다음 셋 중 하나의 파워 관리 (PM) 모드에 있을 수 있습니다.

  • 액티브
  • 파워 세이브
  • 딥 슬립

A station (client) (STA) can be in one of the three power management (PM) modes:

  • Active mode (stays in Awake state)
  • Power Save (PS) mode (stays in either Awake or Doze state)
  • Deep sleep mode

When firmware enters PS mode, a number of hardware blocks are turned off (hardware MAC, baseband processor, and RF chip). A wakeup timer starts that wakes up the WLAN device at the next expected beacon transmit time from the AP. When in PS mode, the hardware bus interface to the host is turned off, as well.

Deep sleep mode:

The host may put the WLAN subsystem in Deep Sleep mode, during which the WLAN subsystem does not wakeup at all. The host sends a signal through the GPIO to wakeup the WLAN subsystem. The wakeup mechanism is interface-dependent.

  • Wakeup semantics.

The firmware can be configured to wakeup the host under certain events. The various conditions are:

- Reception of any broadcast or multicast data (0x1)

- Reception of any unicast data (0x2)

- Generation of any MAC event (0x4)

The host always wakes up if any of the events corresponding to the link

loss happens.

KB3700 임베디드 컨트롤러 칩

* Sleep State - 8051 program counter stopped

  • Deep Sleep State - all internal clocks stopped (~10 uA for 144-pin version)
  • But resetting the embedded controller hard-resets the system!
  • Power consumption targets for 64-pin version: RUN: 12 mA, IDLE: 3 mA, STOP: 500 uA

Clock domains

* Flash - (16 MHz to 64 MHz)

  • 8051/XBI - uses high clock (setting CLKCFG) 22~4 MHz (whatever that means)
  • WDT - 32 kHz
  • Other peripherals use low clock (CLKCFG), 8~2 MHz

CLKCFG register can dial down the clocks.

AD1888 Audio Codec Chip

* Unused channels can be disabled (it has more channels than the 2 we use)

  • TBD need to read more about this chip

파워 관리 테스트 플랜 (진행중)

이 섹션은 파워 관리 소프트웨어 페이지로 옮겨져야 합니다. 두 가지 이슈:

  1. 콴타를 위한 디자인 검증
  2. 동적인 파워 관리를 위한 소프트웨어

This section should be moved to the power management software page.

Two issues:

  1. Design verification for Quanta
  2. Software to implement dynamic power management

하드웨어 셋업

  • 암미터(ammeter)로 입력 전류를 측정하거나,
  • 가능하다면, 볼트미터(voltmeters)로 센스 레지스터를 가로질러 특정 파워 도메인을 측정.

TBD - 그러한 센스 레지스터 테스트 포인트가 가용한지 결정

* Measure input current with ammeter, or

  • If possible, measure specific power domains with voltmeters across sense resistors.

TBD - determine whether such sense resistor test points are available.

C1 테스트

* Turn off unnecessary devices and disable most interrupts

  • Wait for current to stabilize and record reading
  • Setup RTC alarm to fire after N seconds
  • Execute HLT instruction
  • Record new current reading
  • Verify that system wakes up after RTC alarm fires

TBD: do we need to test wakeup from other interrupt sources?

TBD Add test sequences for other domains and states

ACPI 파워 상태 (레퍼런스)

This section is a brief summary of ACPI power states, for reference

Global states

* G0 - running

  • G1 - suspended but system state is recoverable "quickly"
  • G2 - off, requires reboot to start, but power supply is attached
  • G3 - mechanical off, no wall power or main battery power (RTC battery possibly present)

System states

* G0/S0 - not sleeping

  • G1/S1 - many clocks off, but state maintained inside devices
  • G1/S3 - suspend to RAM - devices powered off, so their state must be saved in RAM (RAM must be powered)
  • G1/S4 - suspend to disk (RAM not powered)
  • G2/S5 - full reboot required. 32 kHz clock running.
  • G3 - everything off, except optionally the RTC (mechanical off)

CPU states

* G0/S0/C0 - CPU actively executing instructions

  • G0/S0/C1 - CPU halted (HLT), waiting for interrupt. Cache snoops working, so bus mastering is possible.
  • G1/S1/C2 - Lowest CPU power state that maintains CPU internal context. No need for snooping because (per S1 rules) devices are inactive.
  • G0/S0/CT - clock throttling (not supported by Geode)

Device states

PCI

(As per the Default Device Class Power Management Spec)

  • D0 - Device is on and running
  • D1 - This state is not defined and not used (Jordan says - I have never seen a PCI device that does D1)
  • D2 - This state is not defined and not used (Jordan says - Dito)
  • D3 - Device is off and not running. Device context is assumed lost.

USB

사우스브릿지의 USB 인터페이스와 기타 외부 장치들은 해당 장치가 "어웨이크" 상태에서만 파워를 공급받습니다. 외부 장치를 위한 파워는 USB_VDD_EN_1 and USB_VDD_EN_2 (from the EC)를 구동함으로써 가능합니다.

The USB interface in the Southbridge, and any external devices, are only powered when the device is in the Awake state. Power for external devices is enabled by driving the USB_VDD_EN_1 and USB_VDD_EN_2 (from the EC).

기타 장치들

  • 대부분의 온-보드 장치들(i8402, graphics, southbridge gadets)은 끄고 켤 수 있습니다 (so either D0 or D3 in ACPI speak).

* Most other on-board devices (i8402, graphics, southbridge gadets) are either on or off (so either D0 or D3 in ACPI speak).