		Samsung ARM Linux Overview
		==========================

Introduction
------------

  The Samsung range of ARM SoCs spans many similar devices, from the initial
  ARM9 through to the newest ARM cores. This document shows an overview of
  the current kernel support, how to use it and where to find the code
  that supports this.

  The currently supported SoCs are:

  - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list
  - S3C64XX: S3C6400 and S3C6410
  - S5PC6440

  S5PC100 and S5PC110 support is currently being merged


S3C24XX Systems
---------------

  There is still documentation in Documnetation/arm/Samsung-S3C24XX/ which
  deals with the architecture and drivers specific to these devices.

  See Documentation/arm/Samsung-S3C24XX/Overview.txt for more information
  on the implementation details and specific support.


Configuration
-------------

  A number of configurations are supplied, as there is no current way of
  unifying all the SoCs into one kernel.

  s5p6440_defconfig - S5P6440 specific default configuration
  s5pc100_defconfig - S5PC100 specific default configuration


Layout
------

  The directory layout is currently being restructured, and consists of
  several platform directories and then the machine specific directories
  of the CPUs being built for.

  plat-samsung provides the base for all the implementations, and is the
  last in the line of include directories that are processed for the build
  specific information. It contains the base clock, GPIO and device definitions
  to get the system running.

  plat-s3c is the s3c24xx/s3c64xx platform directory, although it is currently
  involved in other builds this will be phased out once the relevant code is
  moved elsewhere.

  plat-s3c24xx is for s3c24xx specific builds, see the S3C24XX docs.

  plat-s3c64xx is for the s3c64xx specific bits, see the S3C24XX docs.

  plat-s5p is for s5p specific builds, more to be added.


  [ to finish ]


Port Contributors
-----------------

  Ben Dooks (BJD)
  Vincent Sanders
  Herbert Potzl
  Arnaud Patard (RTP)
  Roc Wu
  Klaus Fetscher
  Dimitry Andric
  Shannon Holland
  Guillaume Gourat (NexVision)
  Christer Weinigel (wingel) (Acer N30)
  Lucas Correia Villa Real (S3C2400 port)


Document Author
---------------

Copyright 2009-2010 Ben Dooks <ben-linux@fluff.org>
