Magellan Linux

Contents of /alx-src/trunk/kernel26-alx/linux/Documentation/arm/Samsung-S3C24XX/Suspend.txt

Parent Directory Parent Directory | Revision Log 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)
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