summaryrefslogtreecommitdiffstats
path: root/arch/architecture.dox
blob: 3f94b3c321ed239213816eeb23ad142ab4a0c804 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/** @page dev_architecture Integrate a new architecture (ARCH)

@section linker_scripts Rules for the generic Linker Script File

Never include an object file by name directly! Linker Script Files defines the
layout, not the content. Content is defined in objecfiles instead.

Don't rely on the given object file order to create your binary U-Boot v2! This
may work, but is not relyable in all cases (and its a very bad style)!

For the special case some layout contraints exists, use specific section
naming instead. Refer @ref reset_code how to define this specific section.

@section reset_code Bring it up: The Reset Code

The way a CPU wakes up after reset is very specific to its architecture.

For example the ARM architecture starts its reset code at address 0x0000000,
the x86 architecture at 0x000FFFF0, PowerPC at 0x00000100 or 0xFFFFF100.

So for the special reset code on all architectures it must be located at
architecture specific locations within the binary U-Boot image.

All reset code uses section ".text_entry" for its localisation within the
binary U-Boot image. Its up to the linker script file to use this section name
to find the right place in whatever environment and U-Boot sizes.

@code
	.section ".text_entry","ax"
@endcode

*/

/** @page dev_cpu Intergrate a new CPU (MACH)

Features required for every CPU:

 - clocksource
 - CPU reset function

 - @subpage dev_arm_mach
 - @subpage dev_bf_mach
 - @subpage dev_ppc_mach

*/