summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorJuergen Beisert <jbe@isonoe.(none)>2007-10-19 16:35:25 +0200
committerJuergen Beisert <jbe@isonoe.(none)>2007-10-19 16:35:25 +0200
commitbe65b56a89151a784283376e932a4801f38c4f33 (patch)
tree9ccfb515b2e1a0758ff92e4416f42e9ff19addc1 /arch/arm
parent578433a5a825928d6414654fb0836813dc2443a8 (diff)
downloadbarebox-be65b56a89151a784283376e932a4801f38c4f33.tar.gz
barebox-be65b56a89151a784283376e932a4801f38c4f33.tar.xz
reset doc added for ARM
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-arm.dox24
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/mach-arm.dox b/arch/arm/mach-arm.dox
index 9d311a82f9..4c810956ce 100644
--- a/arch/arm/mach-arm.dox
+++ b/arch/arm/mach-arm.dox
@@ -6,4 +6,28 @@
FIXME
+@par What's happens when the reset signal is gone
+
+@note Code running immediately after reset runs at an address it is not linked
+ to: "runtime address != link address". You should only use branches and
+ do not refer to fixed data. This implies the use of assembler code only.
+
+The ARM CPU starts at lable <reset> in one of the corresponding start-*.S
+files. After some basic hardware setup it can call a function
+<arch_init_lowlevel> if not disabled. This call is intended to give all
+developers a chance to use a standard reset vector file, but also do some
+special things required only on their specific CPU.
+
+After handling some MMU related things <board_init_lowlevel> can be called (if
+not disabled). This is a board specific function for SDRAM setup for example.
+As its board specific, your can do whatever you need to bring your board up.
+
+When <board_init_lowlevel> returns it will be assumed there is now a working
+RAM that can be used for all further steps.
+
+Next step is relocation of UBoot itself. It gets copied to RAM and the last
+assembler instruction is a jump into <start_uboot>. This target address is
+the first C instruction in UBoot. At this point of time:
+"runtime address == link address".
+
*/