96 lines
2.7 KiB
Text
96 lines
2.7 KiB
Text
/** @page dev_board Adapting a new Board
|
|
|
|
To add a new board to @a barebox a few steps must be done, to extend and modify
|
|
the @a barebox source tree.
|
|
|
|
@section board_add_files Files/Directories to be added
|
|
|
|
- arch/\<architecture\>/boards/\<boardname\>
|
|
- arch/\<architecture\>/boards/\<boardname\>/Makefile
|
|
- arch/\<architecture\>/boards/\<boardname\>/\<boardname\>.c
|
|
- arch/\<architecture\>/boards/\<boardname\>/\<boardname\>.dox
|
|
- include/configs/\<boardname\>.h
|
|
- arch/\<architecture\>/configs/\<boardname\>_defconfig
|
|
|
|
@subsection board_makefile arch/\<architecture\>/boards/\<boardname\>Makefile
|
|
|
|
@verbatim
|
|
obj-y += all files that builds the BSP (Assembler and/or C files)
|
|
@endverbatim
|
|
|
|
@subsection board_basefile arch/\<architecture\>/boards/\<boardname\>\<boardname\>.c
|
|
|
|
TBD
|
|
|
|
@subsection board_doxygen arch/\<architecture\>/boards/\<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 arch/\<architecture\>/boards/\<boardname\>/barebox.lds.S
|
|
|
|
If your board needs a special binary @a 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 Documentation/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
|
|
|
|
*/
|