diff options
Diffstat (limited to 'arch/m68k/mach-mcfv4e.dox')
-rw-r--r-- | arch/m68k/mach-mcfv4e.dox | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/arch/m68k/mach-mcfv4e.dox b/arch/m68k/mach-mcfv4e.dox new file mode 100644 index 0000000000..0ecfbc2c9d --- /dev/null +++ b/arch/m68k/mach-mcfv4e.dox @@ -0,0 +1,39 @@ +/* This document is intended to provide the developer with information + * how to integrate a new CPU (MACH) into this part of the U-Boot tree + */ + +/** @page dev_m68k_mach M68k/Coldfire based CPU (MACH) into the tree + +FIXME - fill in further info about Coldfire and so on. Check code + for compliance with the specs given below - move code otherwise. + +@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 M68k 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, Stack or similiar issues, \<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. As stack is already set to internal core RAM, this routine can +be C. + +@note: You are not allowed to call other code here, because we are not running + at link address. + +When \<board_init_lowlevel\> returns it will be assumed that there is now +working RAM that can be used for all further steps. + +Next step is relocation of U-Boot itself. It gets copied to the end of +available RAM and the last assembly instruction is a jump to \<start_uboot\>. + +At this point of time: "runtime address == link address". + +*/ |