Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | S3C24XX ARM Linux Overview |
2 | ========================== | |
3 | ||
4 | ||
5 | ||
6 | Introduction | |
7 | ------------ | |
8 | ||
9 | The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported | |
10 | by the 's3c2410' architecture of ARM Linux. Currently the S3C2410 and | |
11 | the S3C2440 are supported CPUs. | |
12 | ||
a08ceff2 BD |
13 | Support for the S3C2400 series is in progress. |
14 | ||
1da177e4 LT |
15 | |
16 | Configuration | |
17 | ------------- | |
18 | ||
19 | A generic S3C2410 configuration is provided, and can be used as the | |
20 | default by `make s3c2410_defconfig`. This configuration has support | |
21 | for all the machines, and the commonly used features on them. | |
22 | ||
23 | Certain machines may have their own default configurations as well, | |
24 | please check the machine specific documentation. | |
25 | ||
26 | ||
27 | Machines | |
28 | -------- | |
29 | ||
30 | The currently supported machines are as follows: | |
31 | ||
32 | Simtec Electronics EB2410ITX (BAST) | |
33 | ||
34 | A general purpose development board, see EB2410ITX.txt for further | |
35 | details | |
36 | ||
a08ceff2 BD |
37 | Simtec Electronics IM2440D20 (Osiris) |
38 | ||
39 | CPU Module from Simtec Electronics, with a S3C2440A CPU, nand flash | |
40 | and a PCMCIA controller. | |
41 | ||
1da177e4 LT |
42 | Samsung SMDK2410 |
43 | ||
44 | Samsung's own development board, geared for PDA work. | |
45 | ||
46 | Samsung/Meritech SMDK2440 | |
47 | ||
48 | The S3C2440 compatible version of the SMDK2440 | |
49 | ||
50 | Thorcom VR1000 | |
51 | ||
52 | Custom embedded board | |
53 | ||
54 | HP IPAQ 1940 | |
55 | ||
56 | Handheld (IPAQ), available in several varieties | |
57 | ||
58 | HP iPAQ rx3715 | |
59 | ||
60 | S3C2440 based IPAQ, with a number of variations depending on | |
61 | features shipped. | |
62 | ||
63 | Acer N30 | |
64 | ||
65 | A S3C2410 based PDA from Acer. There is a Wiki page at | |
66 | http://handhelds.org/moin/moin.cgi/AcerN30Documentation . | |
67 | ||
68 | ||
69 | Adding New Machines | |
70 | ------------------- | |
71 | ||
72 | The archicture has been designed to support as many machines as can | |
73 | be configured for it in one kernel build, and any future additions | |
74 | should keep this in mind before altering items outside of their own | |
75 | machine files. | |
76 | ||
77 | Machine definitions should be kept in linux/arch/arm/mach-s3c2410, | |
78 | and there are a number of examples that can be looked at. | |
79 | ||
80 | Read the kernel patch submission policies as well as the | |
81 | Documentation/arm directory before submitting patches. The | |
82 | ARM kernel series is managed by Russell King, and has a patch system | |
83 | located at http://www.arm.linux.org.uk/developer/patches/ | |
84 | as well as mailing lists that can be found from the same site. | |
85 | ||
86 | As a courtesy, please notify <ben-linux@fluff.org> of any new | |
87 | machines or other modifications. | |
88 | ||
89 | Any large scale modifications, or new drivers should be discussed | |
90 | on the ARM kernel mailing list (linux-arm-kernel) before being | |
6ff8f59f BD |
91 | attempted. See http://www.arm.linux.org.uk/mailinglists/ for the |
92 | mailing list information. | |
1da177e4 LT |
93 | |
94 | ||
a08ceff2 BD |
95 | I2C |
96 | --- | |
97 | ||
98 | The hardware I2C core in the CPU is supported in single master | |
99 | mode, and can be configured via platform data. | |
100 | ||
101 | ||
102 | RTC | |
103 | --- | |
104 | ||
105 | Support for the onboard RTC unit, including alarm function. | |
106 | ||
107 | ||
108 | Watchdog | |
109 | -------- | |
110 | ||
111 | The onchip watchdog is available via the standard watchdog | |
112 | interface. | |
113 | ||
114 | ||
1da177e4 LT |
115 | NAND |
116 | ---- | |
117 | ||
118 | The current kernels now have support for the s3c2410 NAND | |
119 | controller. If there are any problems the latest linux-mtd | |
120 | CVS can be found from http://www.linux-mtd.infradead.org/ | |
121 | ||
122 | ||
123 | Serial | |
124 | ------ | |
125 | ||
126 | The s3c2410 serial driver provides support for the internal | |
127 | serial ports. These devices appear as /dev/ttySAC0 through 3. | |
128 | ||
129 | To create device nodes for these, use the following commands | |
130 | ||
131 | mknod ttySAC0 c 204 64 | |
132 | mknod ttySAC1 c 204 65 | |
133 | mknod ttySAC2 c 204 66 | |
134 | ||
135 | ||
136 | GPIO | |
137 | ---- | |
138 | ||
139 | The core contains support for manipulating the GPIO, see the | |
140 | documentation in GPIO.txt in the same directory as this file. | |
141 | ||
142 | ||
143 | Clock Management | |
144 | ---------------- | |
145 | ||
146 | The core provides the interface defined in the header file | |
147 | include/asm-arm/hardware/clock.h, to allow control over the | |
148 | various clock units | |
149 | ||
150 | ||
a08ceff2 BD |
151 | Suspend to RAM |
152 | -------------- | |
153 | ||
154 | For boards that provide support for suspend to RAM, the | |
155 | system can be placed into low power suspend. | |
156 | ||
157 | See Suspend.txt for more information. | |
158 | ||
159 | ||
6ff8f59f BD |
160 | Platform Data |
161 | ------------- | |
162 | ||
163 | Whenever a device has platform specific data that is specified | |
164 | on a per-machine basis, care should be taken to ensure the | |
165 | following: | |
166 | ||
167 | 1) that default data is not left in the device to confuse the | |
168 | driver if a machine does not set it at startup | |
169 | ||
170 | 2) the data should (if possible) be marked as __initdata, | |
171 | to ensure that the data is thrown away if the machine is | |
172 | not the one currently in use. | |
173 | ||
174 | The best way of doing this is to make a function that | |
175 | kmalloc()s an area of memory, and copies the __initdata | |
176 | and then sets the relevant device's platform data. Making | |
177 | the function `__init` takes care of ensuring it is discarded | |
178 | with the rest of the initialisation code | |
179 | ||
180 | static __init void s3c24xx_xxx_set_platdata(struct xxx_data *pd) | |
181 | { | |
182 | struct s3c2410_xxx_mach_info *npd; | |
183 | ||
184 | npd = kmalloc(sizeof(struct s3c2410_xxx_mach_info), GFP_KERNEL); | |
185 | if (npd) { | |
186 | memcpy(npd, pd, sizeof(struct s3c2410_xxx_mach_info)); | |
187 | s3c_device_xxx.dev.platform_data = npd; | |
188 | } else { | |
189 | printk(KERN_ERR "no memory for xxx platform data\n"); | |
190 | } | |
191 | } | |
192 | ||
193 | Note, since the code is marked as __init, it should not be | |
194 | exported outside arch/arm/mach-s3c2410/, or exported to | |
195 | modules via EXPORT_SYMBOL() and related functions. | |
196 | ||
a08ceff2 | 197 | |
1da177e4 LT |
198 | Port Contributors |
199 | ----------------- | |
200 | ||
201 | Ben Dooks (BJD) | |
202 | Vincent Sanders | |
203 | Herbert Potzl | |
204 | Arnaud Patard (RTP) | |
205 | Roc Wu | |
206 | Klaus Fetscher | |
207 | Dimitry Andric | |
208 | Shannon Holland | |
209 | Guillaume Gourat (NexVision) | |
210 | Christer Weinigel (wingel) (Acer N30) | |
211 | Lucas Correia Villa Real (S3C2400 port) | |
212 | ||
213 | ||
214 | Document Changes | |
215 | ---------------- | |
216 | ||
217 | 05 Sep 2004 - BJD - Added Document Changes section | |
218 | 05 Sep 2004 - BJD - Added Klaus Fetscher to list of contributors | |
219 | 25 Oct 2004 - BJD - Added Dimitry Andric to list of contributors | |
220 | 25 Oct 2004 - BJD - Updated the MTD from the 2.6.9 merge | |
221 | 21 Jan 2005 - BJD - Added rx3715, added Shannon to contributors | |
222 | 10 Feb 2005 - BJD - Added Guillaume Gourat to contributors | |
223 | 02 Mar 2005 - BJD - Added SMDK2440 to list of machines | |
224 | 06 Mar 2005 - BJD - Added Christer Weinigel | |
225 | 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction | |
226 | 08 Mar 2005 - BJD - Added section on adding machines | |
6ff8f59f | 227 | 09 Sep 2005 - BJD - Added section on platform data |
a08ceff2 BD |
228 | 11 Feb 2006 - BJD - Added I2C, RTC and Watchdog sections |
229 | 11 Feb 2006 - BJD - Added Osiris machine, and S3C2400 information | |
230 | ||
1da177e4 LT |
231 | |
232 | Document Author | |
233 | --------------- | |
234 | ||
a08ceff2 | 235 | Ben Dooks, (c) 2004-2005,2006 Simtec Electronics |