From 7733de908ba918ca47f13157335a100d74ba7cf1 Mon Sep 17 00:00:00 2001 From: Juergen Beisert Date: Wed, 27 May 2009 16:40:06 +0200 Subject: Fix some layout issues and typos. Reorganizing some files to parts of the documentation where their content matches. Signed-off-by: Juergen Beisert Signed-off-by: Sascha Hauer --- arch/architecture.dox | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) (limited to 'arch/architecture.dox') 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 */ + + -- cgit v1.2.3