summaryrefslogtreecommitdiffstats
path: root/board/board.dox
blob: 12eff17be1f652e1f6f6c57bf286e521247d1925 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/** @page dev_board Adapting a new Board

To add a new board to barebox a few steps must be done, to extend and modify
the barebox source tree.

@section board_add_files Files/Directories to be added

 - board/\<boardname\>
 - board/\<boardname\>/Makefile
 - board/\<boardname\>/\<boardname\>.c
 - board/\<boardname\>/\<boardname\>.dox
 - include/configs/\<boardname\>.h
 - arch/\<architecture\>/configs/\<boardname\>_defconfig

@subsection board_makefile board/\<boardname\>Makefile

@verbatim
	obj-y += all files that builds the BSP (Assembler and/or C files)
@endverbatim

@subsection board_basefile board/\<boardname\>\<boardname\>.c

TBD

@subsection board_doxygen board/\<boardname\>/\<boardname\>.dox

This file should describe in short words your new board, what CPU
it uses, what resources are provided and features it supports.

Use the doxygen style for this kind of documentation. Below you find a
template for this kind of file:

@verbatim
/** @page <boardname> <Manufacturer> <Board's Name>

This board uses an <architecture> based CPU. The board is shipped with:

- many MiB NOR type Flash Memory
- many MiB SDRAM
- a very special network controller

and so on.

*/
@endverbatim

To make your new shiny file visible in the automatically generated
documentation you must sort in the used page lable ("<boardname>" in the
template above) into Documentation/boards.dox as:

@verbatim
 ...
 @subpage <boardname>
 ...
@endverbatim

at the right architecture.

@note Consider to use an unique page lable.

@subsection board_lscript board/\<boardname\>/barebox.ld.S

If your board needs a special binary barebox layout, you can provide a local
board linker script file. This will replace the generic one provided by your
architecture or CPU support.

Add this file with

@verbatim
	extra-y += <board_linker_script>
@endverbatim

in your local \b Makefile to the list of files, forwarded to the last linking step.

@section board_defconfig arch/\<architecture\>/configs/\<boardname\>_defconfig

TBD

@section board_mod_files These files needs to be modified:

 - modify board/board.dox
 - modify arch/\<architecture\>/Kconfig
  - add your board (MACH_*) to the list
  - add your default text base address for this architecture (ARCH_TEXT_BASE)
  - add BOARDINFO with valueable info for your board
 - modify arch/\<architecture\>/Makefile:
  - add board-$(MACH_*) = \<your board_dir\>

First, the new board should be visible in the menu.

@section board_specific_cpu Porting hints for specific CPUs

@li @subpage dev_s3c24xx_mach

*/