-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 187439 b: refs/heads/master c: 2a2d10f h: refs/heads/master i: 187437: 1a3c7e4 187435: de2d980 187431: 3ee0719 187423: 1e10dee v: v3
- Loading branch information
Russell King
committed
Feb 25, 2010
1 parent
755c47a
commit 9e1318f
Showing
198 changed files
with
10,531 additions
and
2,474 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: c499546f43f2c31b681271ef7db922839fcde5fe | ||
refs/heads/master: 2a2d10f386c1bacabe1a530c06dc8488eac419e5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
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> |
167 changes: 167 additions & 0 deletions
167
trunk/Documentation/arm/Samsung/clksrc-change-registers.awk
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
#!/usr/bin/awk -f | ||
# | ||
# Copyright 2010 Ben Dooks <ben-linux@fluff.org> | ||
# | ||
# Released under GPLv2 | ||
|
||
# example usage | ||
# ./clksrc-change-registers.awk arch/arm/plat-s5pc1xx/include/plat/regs-clock.h < src > dst | ||
|
||
function extract_value(s) | ||
{ | ||
eqat = index(s, "=") | ||
comat = index(s, ",") | ||
return substr(s, eqat+2, (comat-eqat)-2) | ||
} | ||
|
||
function remove_brackets(b) | ||
{ | ||
return substr(b, 2, length(b)-2) | ||
} | ||
|
||
function splitdefine(l, p) | ||
{ | ||
r = split(l, tp) | ||
|
||
p[0] = tp[2] | ||
p[1] = remove_brackets(tp[3]) | ||
} | ||
|
||
function find_length(f) | ||
{ | ||
if (0) | ||
printf "find_length " f "\n" > "/dev/stderr" | ||
|
||
if (f ~ /0x1/) | ||
return 1 | ||
else if (f ~ /0x3/) | ||
return 2 | ||
else if (f ~ /0x7/) | ||
return 3 | ||
else if (f ~ /0xf/) | ||
return 4 | ||
|
||
printf "unknown legnth " f "\n" > "/dev/stderr" | ||
exit | ||
} | ||
|
||
function find_shift(s) | ||
{ | ||
id = index(s, "<") | ||
if (id <= 0) { | ||
printf "cannot find shift " s "\n" > "/dev/stderr" | ||
exit | ||
} | ||
|
||
return substr(s, id+2) | ||
} | ||
|
||
|
||
BEGIN { | ||
if (ARGC < 2) { | ||
print "too few arguments" > "/dev/stderr" | ||
exit | ||
} | ||
|
||
# read the header file and find the mask values that we will need | ||
# to replace and create an associative array of values | ||
|
||
while (getline line < ARGV[1] > 0) { | ||
if (line ~ /\#define.*_MASK/ && | ||
!(line ~ /S5PC100_EPLL_MASK/) && | ||
!(line ~ /USB_SIG_MASK/)) { | ||
splitdefine(line, fields) | ||
name = fields[0] | ||
if (0) | ||
printf "MASK " line "\n" > "/dev/stderr" | ||
dmask[name,0] = find_length(fields[1]) | ||
dmask[name,1] = find_shift(fields[1]) | ||
if (0) | ||
printf "=> '" name "' LENGTH=" dmask[name,0] " SHIFT=" dmask[name,1] "\n" > "/dev/stderr" | ||
} else { | ||
} | ||
} | ||
|
||
delete ARGV[1] | ||
} | ||
|
||
/clksrc_clk.*=.*{/ { | ||
shift="" | ||
mask="" | ||
divshift="" | ||
reg_div="" | ||
reg_src="" | ||
indent=1 | ||
|
||
print $0 | ||
|
||
for(; indent >= 1;) { | ||
if ((getline line) <= 0) { | ||
printf "unexpected end of file" > "/dev/stderr" | ||
exit 1; | ||
} | ||
|
||
if (line ~ /\.shift/) { | ||
shift = extract_value(line) | ||
} else if (line ~ /\.mask/) { | ||
mask = extract_value(line) | ||
} else if (line ~ /\.reg_divider/) { | ||
reg_div = extract_value(line) | ||
} else if (line ~ /\.reg_source/) { | ||
reg_src = extract_value(line) | ||
} else if (line ~ /\.divider_shift/) { | ||
divshift = extract_value(line) | ||
} else if (line ~ /{/) { | ||
indent++ | ||
print line | ||
} else if (line ~ /}/) { | ||
indent-- | ||
|
||
if (indent == 0) { | ||
if (0) { | ||
printf "shift '" shift "' ='" dmask[shift,0] "'\n" > "/dev/stderr" | ||
printf "mask '" mask "'\n" > "/dev/stderr" | ||
printf "dshft '" divshift "'\n" > "/dev/stderr" | ||
printf "rdiv '" reg_div "'\n" > "/dev/stderr" | ||
printf "rsrc '" reg_src "'\n" > "/dev/stderr" | ||
} | ||
|
||
generated = mask | ||
sub(reg_src, reg_div, generated) | ||
|
||
if (0) { | ||
printf "/* rsrc " reg_src " */\n" | ||
printf "/* rdiv " reg_div " */\n" | ||
printf "/* shift " shift " */\n" | ||
printf "/* mask " mask " */\n" | ||
printf "/* generated " generated " */\n" | ||
} | ||
|
||
if (reg_div != "") { | ||
printf "\t.reg_div = { " | ||
printf ".reg = " reg_div ", " | ||
printf ".shift = " dmask[generated,1] ", " | ||
printf ".size = " dmask[generated,0] ", " | ||
printf "},\n" | ||
} | ||
|
||
printf "\t.reg_src = { " | ||
printf ".reg = " reg_src ", " | ||
printf ".shift = " dmask[mask,1] ", " | ||
printf ".size = " dmask[mask,0] ", " | ||
|
||
printf "},\n" | ||
|
||
} | ||
|
||
print line | ||
} else { | ||
print line | ||
} | ||
|
||
if (0) | ||
printf indent ":" line "\n" > "/dev/stderr" | ||
} | ||
} | ||
|
||
// && ! /clksrc_clk.*=.*{/ { print $0 } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.