9
0
Fork 0
barebox/arch/arm/mach-arm.dox

51 lines
1.8 KiB
Plaintext
Raw Normal View History

2007-10-19 11:19:43 +00:00
/* 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
2007-10-19 11:19:43 +00:00
*/
/** @page dev_arm_mach ARM based CPU (MACH) into the tree
FIXME
2007-10-19 14:35:25 +00:00
@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.
2007-11-08 11:01:52 +00:00
The ARM CPU starts at lable \<reset\> in one of the corresponding start-*.S
2007-10-19 14:35:25 +00:00
files. After some basic hardware setup it can call a function
2007-11-08 11:01:52 +00:00
\<arch_init_lowlevel\> if not disabled. This call is intended to give all
2007-10-19 14:35:25 +00:00
developers a chance to use a standard reset vector file, but also do some
special things required only on their specific CPU.
2007-11-08 11:01:52 +00:00
After handling some MMU related things \<board_init_lowlevel\> can be called (if
2007-10-19 14:35:25 +00:00
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.
2007-11-08 11:01:52 +00:00
When \<board_init_lowlevel\> returns it will be assumed there is now a working
2007-10-19 14:35:25 +00:00
RAM that can be used for all further steps.
Next step is relocation of U-Boot itself. It gets copied to RAM and the last
2007-11-08 11:01:52 +00:00
assembler instruction is a jump into \<start_uboot\>. This target address is
the first C instruction in U-Boot. At this point of time:\n
2007-10-19 14:35:25 +00:00
"runtime address == link address".
@par Architectures using ARM processors
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
2007-10-19 11:19:43 +00:00
*/