summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJuergen Beisert <j.beisert@pengutronix.de>2009-05-27 16:40:06 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-06-10 12:47:20 +0200
commit7733de908ba918ca47f13157335a100d74ba7cf1 (patch)
tree6c1cd8eb60a2c63422705c4e95e9b63cb9433b4c /arch
parentbf725a2945a31d81d1d686d36bc755c115a7ee8f (diff)
downloadbarebox-7733de908ba918ca47f13157335a100d74ba7cf1.tar.gz
barebox-7733de908ba918ca47f13157335a100d74ba7cf1.tar.xz
Fix some layout issues and typos.
Reorganizing some files to parts of the documentation where their content matches. Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/architecture.dox50
-rw-r--r--arch/arm/mach-arm.dox13
2 files changed, 62 insertions, 1 deletions
diff --git a/arch/architecture.dox b/arch/architecture.dox
index 3f94b3c321..9013bae1b2 100644
--- a/arch/architecture.dox
+++ b/arch/architecture.dox
@@ -29,17 +29,65 @@ to find the right place in whatever environment and U-Boot sizes.
.section ".text_entry","ax"
@endcode
+@section arch_files List of changes
+
+ - create a new subdirectory in /arch
+TODO
+
*/
-/** @page dev_cpu Intergrate a new CPU (MACH)
+/** @page dev_cpu Integrate a new CPU (MACH)
Features required for every CPU:
- clocksource
- CPU reset function
+@section time_keeping Time keeping
+
+In U-Boot-v2 we are using the clocksource mechanism from the Linux Kernel.
+This makes it fairly easy to add timer functionality for a new board or
+architecture.
+
+Apart from initialization there is only one function to be registerd:
+clocksource_read(). This function returns the current value of a free running
+counter. Other functions like udelay() and get_time_ns() are derived from this
+function. The only thing you have to implement is a clocksource driver and
+to register it at runtime.
+
+@code
+static uint64_t mycpu_clocksource_read(void)
+{
+ TODO
+}
+
+static struct clocksource cs = {
+ .read = mycpu_clocksource_read,
+ .mask = 0xffffffff,
+ .shift = 10,
+};
+
+....
+ init_clock(&cs);
+....
+@endcode
+
+See arch/arm/mach-imx/clocksource.c for an example. clocksource drivers from
+the Linux Kernel can be used nearly 1:1, except for the register accesses.
+
+Note: For clocksources the __lshrdi3 symbol is needed. You can find the
+function for your architecture in the Linux Kernel or a libc of your choice.
+
+Note: U-Boot-v2 expects an upward counting counter!
+
+@section reset_function Reset function
+
+TODO
+
- @subpage dev_arm_mach
- @subpage dev_bf_mach
- @subpage dev_ppc_mach
*/
+
+
diff --git a/arch/arm/mach-arm.dox b/arch/arm/mach-arm.dox
index 47586dc4ca..412ce3840f 100644
--- a/arch/arm/mach-arm.dox
+++ b/arch/arm/mach-arm.dox
@@ -34,4 +34,17 @@ the first C instruction in U-Boot. At this point of time:\n
For details on specific architectures:
- @subpage dev_omap_arch
+@section mach_arm_files List of changes
+
+Lets call the new MACH new_cpu.
+
+ - create a new subdirectory in /arch/arm/new_cpu
+ - add /arch/arm/new_cpu/Kconfig
+ - add /arch/arm/new_cpu/Makfile
+ - add other CPU specific code into /arch/arm/new_cpu/
+ - modify /arch/arm/Kconfig
+ - modify /arch/arm/Makfile
+
+TODO add more details
+
*/