Overview.txt 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. S3C24XX ARM Linux Overview
  2. ==========================
  3. Introduction
  4. ------------
  5. The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported
  6. by the 's3c2410' architecture of ARM Linux. Currently the S3C2410 and
  7. the S3C2440 are supported CPUs.
  8. Configuration
  9. -------------
  10. A generic S3C2410 configuration is provided, and can be used as the
  11. default by `make s3c2410_defconfig`. This configuration has support
  12. for all the machines, and the commonly used features on them.
  13. Certain machines may have their own default configurations as well,
  14. please check the machine specific documentation.
  15. Machines
  16. --------
  17. The currently supported machines are as follows:
  18. Simtec Electronics EB2410ITX (BAST)
  19. A general purpose development board, see EB2410ITX.txt for further
  20. details
  21. Samsung SMDK2410
  22. Samsung's own development board, geared for PDA work.
  23. Samsung/Meritech SMDK2440
  24. The S3C2440 compatible version of the SMDK2440
  25. Thorcom VR1000
  26. Custom embedded board
  27. HP IPAQ 1940
  28. Handheld (IPAQ), available in several varieties
  29. HP iPAQ rx3715
  30. S3C2440 based IPAQ, with a number of variations depending on
  31. features shipped.
  32. Acer N30
  33. A S3C2410 based PDA from Acer. There is a Wiki page at
  34. http://handhelds.org/moin/moin.cgi/AcerN30Documentation .
  35. Adding New Machines
  36. -------------------
  37. The archicture has been designed to support as many machines as can
  38. be configured for it in one kernel build, and any future additions
  39. should keep this in mind before altering items outside of their own
  40. machine files.
  41. Machine definitions should be kept in linux/arch/arm/mach-s3c2410,
  42. and there are a number of examples that can be looked at.
  43. Read the kernel patch submission policies as well as the
  44. Documentation/arm directory before submitting patches. The
  45. ARM kernel series is managed by Russell King, and has a patch system
  46. located at http://www.arm.linux.org.uk/developer/patches/
  47. as well as mailing lists that can be found from the same site.
  48. As a courtesy, please notify <ben-linux@fluff.org> of any new
  49. machines or other modifications.
  50. Any large scale modifications, or new drivers should be discussed
  51. on the ARM kernel mailing list (linux-arm-kernel) before being
  52. attempted. See http://www.arm.linux.org.uk/mailinglists/ for the
  53. mailing list information.
  54. NAND
  55. ----
  56. The current kernels now have support for the s3c2410 NAND
  57. controller. If there are any problems the latest linux-mtd
  58. CVS can be found from http://www.linux-mtd.infradead.org/
  59. Serial
  60. ------
  61. The s3c2410 serial driver provides support for the internal
  62. serial ports. These devices appear as /dev/ttySAC0 through 3.
  63. To create device nodes for these, use the following commands
  64. mknod ttySAC0 c 204 64
  65. mknod ttySAC1 c 204 65
  66. mknod ttySAC2 c 204 66
  67. GPIO
  68. ----
  69. The core contains support for manipulating the GPIO, see the
  70. documentation in GPIO.txt in the same directory as this file.
  71. Clock Management
  72. ----------------
  73. The core provides the interface defined in the header file
  74. include/asm-arm/hardware/clock.h, to allow control over the
  75. various clock units
  76. Platform Data
  77. -------------
  78. Whenever a device has platform specific data that is specified
  79. on a per-machine basis, care should be taken to ensure the
  80. following:
  81. 1) that default data is not left in the device to confuse the
  82. driver if a machine does not set it at startup
  83. 2) the data should (if possible) be marked as __initdata,
  84. to ensure that the data is thrown away if the machine is
  85. not the one currently in use.
  86. The best way of doing this is to make a function that
  87. kmalloc()s an area of memory, and copies the __initdata
  88. and then sets the relevant device's platform data. Making
  89. the function `__init` takes care of ensuring it is discarded
  90. with the rest of the initialisation code
  91. static __init void s3c24xx_xxx_set_platdata(struct xxx_data *pd)
  92. {
  93. struct s3c2410_xxx_mach_info *npd;
  94. npd = kmalloc(sizeof(struct s3c2410_xxx_mach_info), GFP_KERNEL);
  95. if (npd) {
  96. memcpy(npd, pd, sizeof(struct s3c2410_xxx_mach_info));
  97. s3c_device_xxx.dev.platform_data = npd;
  98. } else {
  99. printk(KERN_ERR "no memory for xxx platform data\n");
  100. }
  101. }
  102. Note, since the code is marked as __init, it should not be
  103. exported outside arch/arm/mach-s3c2410/, or exported to
  104. modules via EXPORT_SYMBOL() and related functions.
  105. Port Contributors
  106. -----------------
  107. Ben Dooks (BJD)
  108. Vincent Sanders
  109. Herbert Potzl
  110. Arnaud Patard (RTP)
  111. Roc Wu
  112. Klaus Fetscher
  113. Dimitry Andric
  114. Shannon Holland
  115. Guillaume Gourat (NexVision)
  116. Christer Weinigel (wingel) (Acer N30)
  117. Lucas Correia Villa Real (S3C2400 port)
  118. Document Changes
  119. ----------------
  120. 05 Sep 2004 - BJD - Added Document Changes section
  121. 05 Sep 2004 - BJD - Added Klaus Fetscher to list of contributors
  122. 25 Oct 2004 - BJD - Added Dimitry Andric to list of contributors
  123. 25 Oct 2004 - BJD - Updated the MTD from the 2.6.9 merge
  124. 21 Jan 2005 - BJD - Added rx3715, added Shannon to contributors
  125. 10 Feb 2005 - BJD - Added Guillaume Gourat to contributors
  126. 02 Mar 2005 - BJD - Added SMDK2440 to list of machines
  127. 06 Mar 2005 - BJD - Added Christer Weinigel
  128. 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction
  129. 08 Mar 2005 - BJD - Added section on adding machines
  130. 09 Sep 2005 - BJD - Added section on platform data
  131. Document Author
  132. ---------------
  133. Ben Dooks, (c) 2004-2005 Simtec Electronics