Contents of /alx-src/trunk/kernel26-alx/linux/Documentation/arm/Samsung-S3C24XX/Suspend.txt
Parent Directory | Revision Log
Revision 628 -
(show annotations)
(download)
Wed Mar 4 10:48:58 2009 UTC (15 years, 1 month ago) by niro
File MIME type: text/plain
File size: 3156 byte(s)
Wed Mar 4 10:48:58 2009 UTC (15 years, 1 month ago) by niro
File MIME type: text/plain
File size: 3156 byte(s)
import linux sources based on 2.6.12-alx-r9: -using linux-2.6.12.6 -using 2.6.12-ck6 patch set -using fbsplash-0.9.2-r3 -using vesafb-tng-0.9-rc7 -using squashfs-2.2 -added cddvd-cmdfilter-drop.patch as ck dropped it -added via-epia-dri (cle266) patch -added zd1211-svn-32 wlan driver (http://zd1211.ath.cx/download/) -added debian patches to zd1211 for wep256 etc
1 | S3C24XX Suspend Support |
2 | ======================= |
3 | |
4 | |
5 | Introduction |
6 | ------------ |
7 | |
8 | The S3C2410 supports a low-power suspend mode, where the SDRAM is kept |
9 | in Self-Refresh mode, and all but the essential peripheral blocks are |
10 | powered down. For more information on how this works, please look |
11 | at the S3C2410 datasheets from Samsung. |
12 | |
13 | |
14 | Requirements |
15 | ------------ |
16 | |
17 | 1) A bootloader that can support the necessary resume operation |
18 | |
19 | 2) Support for at least 1 source for resume |
20 | |
21 | 3) CONFIG_PM enabled in the kernel |
22 | |
23 | 4) Any peripherals that are going to be powered down at the same |
24 | time require suspend/resume support. |
25 | |
26 | |
27 | Resuming |
28 | -------- |
29 | |
30 | The S3C2410 user manual defines the process of sending the CPU to |
31 | sleep and how it resumes. The default behaviour of the Linux code |
32 | is to set the GSTATUS3 register to the physical address of the |
33 | code to resume Linux operation. |
34 | |
35 | GSTATUS4 is currently left alone by the sleep code, and is free to |
36 | use for any other purposes (for example, the EB2410ITX uses this to |
37 | save memory configuration in). |
38 | |
39 | |
40 | Machine Support |
41 | --------------- |
42 | |
43 | The machine specific functions must call the s3c2410_pm_init() function |
44 | to say that its bootloader is capable of resuming. This can be as |
45 | simple as adding the following to the machine's definition: |
46 | |
47 | INITMACHINE(s3c2410_pm_init) |
48 | |
49 | A board can do its own setup before calling s3c2410_pm_init, if it |
50 | needs to setup anything else for power management support. |
51 | |
52 | There is currently no support for over-riding the default method of |
53 | saving the resume address, if your board requires it, then contact |
54 | the maintainer and discuss what is required. |
55 | |
56 | Note, the original method of adding an late_initcall() is wrong, |
57 | and will end up initialising all compiled machines' pm init! |
58 | |
59 | |
60 | Debugging |
61 | --------- |
62 | |
63 | There are several important things to remember when using PM suspend: |
64 | |
65 | 1) The uart drivers will disable the clocks to the UART blocks when |
66 | suspending, which means that use of printascii() or similar direct |
67 | access to the UARTs will cause the debug to stop. |
68 | |
69 | 2) Whilst the pm code itself will attempt to re-enable the UART clocks, |
70 | care should be taken that any external clock sources that the UARTs |
71 | rely on are still enabled at that point. |
72 | |
73 | |
74 | Configuration |
75 | ------------- |
76 | |
77 | The S3C2410 specific configuration in `System Type` defines various |
78 | aspects of how the S3C2410 suspend and resume support is configured |
79 | |
80 | `S3C2410 PM Suspend debug` |
81 | |
82 | This option prints messages to the serial console before and after |
83 | the actual suspend, giving detailed information on what is |
84 | happening |
85 | |
86 | |
87 | `S3C2410 PM Suspend Memory CRC` |
88 | |
89 | Allows the entire memory to be checksummed before and after the |
90 | suspend to see if there has been any corruption of the contents. |
91 | |
92 | This support requires the CRC32 function to be enabled. |
93 | |
94 | |
95 | `S3C2410 PM Suspend CRC Chunksize (KiB)` |
96 | |
97 | Defines the size of memory each CRC chunk covers. A smaller value |
98 | will mean that the CRC data block will take more memory, but will |
99 | identify any faults with better precision |
100 | |
101 | |
102 | Document Author |
103 | --------------- |
104 | |
105 | Ben Dooks, (c) 2004 Simtec Electronics |
106 |