40 lines
1.7 KiB
Plaintext
40 lines
1.7 KiB
Plaintext
/* This document is intended to provide the developer with information
|
|
* how to integrate a new CPU (MACH) into this part of the barebox 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 barebox itself. It gets copied to the end of
|
|
available RAM and the last assembly instruction is a jump to \<start_barebox\>.
|
|
|
|
At this point of time: "runtime address == link address".
|
|
|
|
*/
|